正则表达式与POSIX字符
warning:
这篇文章距离上次修改已过1711天,其中的内容可能已经有所变动。
正则表达式
warning:注意:正则匹配规则较多,此处列出部分常用的语法,请耐心等待完善!如果您发现有错误或仍需添加的部分请在评论区留言或发送邮件。
正则语法
正则表达式 | 说明 |
---|---|
\w | 匹配文字和数字字符,也就是[A-Za-z0-9] |
\W | \w 的反置形式,匹配一个或多个非单词字符,如点号句号等。 |
\b | 单词锁定符,如: \bgrep\b 只匹配grep。 |
^ | 锚定行的开始 如:^grep 匹配所有以grep开头的行。 |
$ | 锚定行的结束 如:grep$ 匹配所有以grep结尾的行。 |
. | 匹配一个非换行符的字符 如:gr.p 匹配gr后接一个任意字符,然后是p。 |
* | 匹配零个或多个先前字符 如:*grep 匹配所有一个或多个空格后紧跟grep的行。 |
.* | 一起用代表任意字符。 |
[] | 匹配一个指定范围内的字符,如[Gg]rep 匹配Grep和grep。 |
[^] | 匹配一个不在指定范围内的字符,如:[^A-FH-Z]rep 匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。 |
() | 标记匹配字符,被暂存到临时区域(最多有9个),它们可以用 \1 到\9 的符号来引用。如(love) ,love被标记为\1 。 |
\< | 锚定单词的开始,如:\<grep 匹配包含以grep开头的单词的行。 |
\> | 锚定单词的结束,如grep\> 匹配包含以grep结尾的单词的行。 |
x{m} | 重复字符x,m次,如:o\{5\} 匹配包含5个o的行。 |
x{m,} | 重复字符x,至少m次,如:o\{5,\} 匹配至少有5个o的行。 |
x{m,n} | 重复字符x,至少m次,不多于n次,如:o\{5,10\} 匹配5--10个o的行。 |
例子
#匹配中文
[\u4e00-\u9fa5]+
#匹配时间(时:分:秒)
([01]?\d|2[0-3]):[0-5]?\d:[0-5]?\d
#匹配日期(年-月-日)
(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)
#匹配iPv4地址
\d{0,3}\.\d{0,3}\.\d{0,3}\.\d{0,3}
#匹配邮箱
\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}
#匹配url
[a-zA-z]+://[^\s]*
#匹配身份证号(18位)
^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$
POSIX字符
为了在不同国家的字符编码中保持一至,POSIX(The Portable Operating System Interface)增加了特殊的字符类
如[:alnum:]
是[A-Za-z0-9]
另一种写法都表示匹配文字数字字符(A-Z,a-z,0-9)。
info:
[]
本身就是POSIX字符的一部分。只有把它们放到[]
号内才能成为正则表达式,如[A-Za-z0-9]
或[[:alnum:]]
在linux下的
grep
除fgrep(等同于grep -F)
外,都支持POSIX的字符类。POSIX字符规则
POSIX字符 | 说明 |
---|---|
[:alnum:] | 文字数字字符(A-Z,a-z,0-9) |
[:digit:] | 数字字符(0-9) |
[:alpha:] | 文字字符(A-Z,a-z) |
[:lower:] | 小写字符(a-z) |
[:upper:] | 大写字符(A-Z) |
[:graph:] | 非空字符(非空格、控制字符) |
[:print:] | 非空字符(包括空格) |
[:blank:] | 空格或制表符 |
[:cntrl:] | 控制字符(ASCII 0~31 和 ASCII 127) |
[:punct:] | 标点符号(不属于[:alnum:] 和[:cntrl:] 的任何字符) |
[:space:] | 所有空白字符(空格,制表符,换行符) |
[:xdigit:] | 十六进制数字(0-9,a-f,A-F) |