概述
正则表达式其实就是一种规则,指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。
正则基础语法
1.普通字符
语法 | 说明 |
---|---|
[abc] | a、b 或 c(简单类) |
[^abc] | 任何字符,除了 a、b 或 c(否定) |
[a-zA-Z] | a到 z 或 A到 Z,两头的字母包括在内(范围) |
[0-9] | 0到9的字符都包括 |
2.限定字符
语法 | 说明 |
---|---|
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
3.边界匹配字符
语法 | 说明 |
---|---|
^ | 行的开头 |
$ | 行的结尾 |
b | 单词边界 |
常见快捷匹配
匹配字符串的常用表达式
- 汉字:^[u4e00-u9fa5]{0,}$
- 英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
- 长度为3-20的所有字符:^.{3,20}$
- 由26个大写英文字母组成的字符串:^[A-Z]+$
- 由26个英文字母组成的字符串:^[A-Za-z]+$
- 由26个小写英文字母组成的字符串:^[a-z]+$
- 由数字、26个英文字母或者下划线组成的字符串:^w+$
- 由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
- 中文、英文、数字包括下划线:^[u4E00-u9FA5A-Za-z0-9_]+$
- 中文、英文、数字但不包括下划线等符号:^[u4E00-u9FA5A-Za-z0-9]+$
匹配数字的常用表达式
- 数字:^[0-9]*$
- n位的数字:^d{n}$
- 至少n位的数字:^d{n,}$
- m-n位的数字:^d{m,n}$
- 零和非零开头的数字:^(0|1-9*)$
- 带1-2位小数的正数或负数:^(-)?d+(.d{1,2})?$
- 非零的负整数:^-[1-9][]0-9″*$ 或 ^-[1-9]d*$
- 非负整数:^d+$ 或 ^[1-9]d*|0$
- 浮点数:^(-?d+)(.d+)?$ 或 ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$
常见需求表达式
- Email地址:^w+([-+.]w+)@w+([-.]w+).w+([-.]w+)*$
- 手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])d{8}$
- 身份证号(15位、18位数字):^d{15}|d{18}$
- 电话号码(“XXX-XXXXXXX”、”XXXX-XXXXXXXX”、”XXX-XXXXXXX”、”XXX-XXXXXXXX”、”XXXXXXX”和”XXXXXXXX):^($$d{3,4}-)|d{3.4}-)?d{7,8}$
- 域名:a-zA-Z0-9{0,62}(/.a-zA-Z0-9{0,62})+/.?
- 国内电话号码(0511-4405222、021-87888822):d{3}-d{8}|d{4}-d{7}
- InternetURL:[a-zA-z]+://1 或 ^http://([w-]+.)+[w-]+(/[w-./?%&=])?$
- 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]w{5,17}$
- 强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间):^(?=.d)(?=.[a-z])(?=.*[A-Z]).{8,10}$
- 日期格式:^d{4}-d{1,2}-d{1,2}
- 空白行的正则表达式:ns*r (可以用来删除空白行)
- IP地址:((?:(?:25[0-5]|2[0-4]d|[01]?d?d).){3}(?:25[0-5]|2[0-4]d|[01]?d?d))
-
邮政编码:[1-9]d{5}(?!d) (中国邮政编码为6位数字)
总结
本文介绍了正则表达式的基础语法,以及常用表达式,建议收藏使用!
- s ↩
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: eBPF 到底是可观测领域的神器 or 鸡肋?真相其实是——
当下,eBPF 无疑是最火热的技术之一,它为云原生环境下的网络、安全和可观测性解决方案提供了全新的思路。 作为一种无需入侵应用代码、直接向操作系统内核安全添加代码的革命性技术,eBPF 使得企业能够不依赖内核固有的指标数据,直接编写代码收集自定义数据,并生成可…