1.匹配顺文本
简单的一个单词也可以作为正则表达式来使用,例如:用hello去匹配字符串"hello world!"的得到的结果是"hello world!"。
值得注意的是,在不同的语言环境中,匹配的结果数量会不一样,有的正则表达式语言只匹配一个结果,而有的则匹配多个结果。在只匹配一个结果的情况下,可以通过配置参数来实现多个结果的匹配。
大小写问题。正则表达式是区分大小写的,所以Hello和hello匹配的结果是不一样的。但是绝大多数正则表达式语言已经实现了通过参数来配置不区分大小写的匹配操作。
2.匹配任意字符.(点)
.(英文的句号)可以匹配任意一个字符。比如用c.t去匹配字符"cat cot ccc oco"将会得到结果"cat cot ccc oco"(多结果匹配)。它可以匹配任何单个的字符、字母数字以及.本身。
3.匹配特殊字符
.可以用来匹配.字符本身。是元字符。可以用\去匹配字符串中的。
4.匹配多个字符中的一个
用[和]定义一个字符区间。匹配字符串的结果是能够与区间里面任意一个成员匹配的文本。例如用[ns]去匹配字符串"solo name"将会得到"solo name"。
5.字符集合区间
[0-9],[a-z],[A-Z],[A-z](这个是按照ASCII字符表来的,所以会包含A-z之间的所有字符),常规一点[0-3].
6.取非匹配
^是对字符集合进行操作[^0-9]非数字
7.元字符
. [ ] 如果要匹配这些字符本身,必须用进行转义。元字符分两类,一类是用来匹配文本的,像. ,另一种是正则表达式语言本身要求[]。应该还有,待补充。
8.空白字符
[] 回退并删除一个字符Backspace键
f 换页符
换行符
回车键
制表符Tab
v 垂直制表符
9.匹配数字
d 相当于[0-9]
D 相当于[^0-9]
10.匹配字母和数字
w相当于[a-zA-Z0-9_]
W相当于[^a-zA-Z0-9_]
11.匹配空白字符
s任何一个空白字符等价于[f v]
S相当于[^f v]
12.十六进制和八进制
x开头十六进制x0A相当于10(换行符)==
作为前缀是八进制
13.POSIX字符类是许多正则表达式都支持的一种简写方式。
js不支持。
[:alnum:]任何一个字母或数字(等价于[a-zA-Z0-9])
[:alpha:]任何一个字母(等价于[a-zA-Z])
[:blank:]空格或者制表符(等价于[ ])
[:cntrl:]ASCII控制字符 (ASCII从0到31加上 127)
[:digit:]任何一个数字(等价于[0-9])
[:print:]任何一个可打印字符
[:graph:]和[:print:]一样但不包括空格
[:lower:]任何一个小写字母(等价于[a-z])
[:punct:]既不属于[:alnum:]也不属于[:cntrl:]的任何一个字符
[:space:]任何一个空白字符,包括空格(等价于[f v ])
[:upper:]任何一个大写字母(等价于[A-Z])
[:xdigit:]任何一个十六进制数字
将[0-9]用[[:digit:]]替换效果一样,之所以是两个[[和两个]]是因为外面的[]标示集合,而里面的[]是posix本身所有