<span style="font-size:24px;">关于正则表达式的一点总结。
1、纯文本也算正则表达式,区分大小写。
2、“.”用于匹配任何单个字符,可以是'.'本身。
c.t匹配到cat,cot。
3、转义字符'\'用于特殊字符转义成一般字符(不严谨,\1表示第一个子表达式等)。
4、匹配多个字符中的某一个。
[a-zA-Z0-9],
[0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]
5、取非匹配。
[^0-9]表示除了这里给定的字符(0123456789)都可以。
6、转义字符。
[\b] 回退并删除一个字符(Backspace)
\f 换页
\n 换行
\r 回车
\t 制表
\v 垂直制表
\d 数字
\D 非数字
\w 字母和数字下划线,[a-zA-Z0-9_]
\W 对\w取非,非字母数字或非下划线,[^a-zA-Z0-9_]
\s 空白字符[\f\n\r\t\v]
\S 非空白字符
\x 十六进制\x0A对应于ASCII的10,也就是\n
7、POSIX字符类
[:alnum:] 字母或数字[a-zA-Z0-9]
[:alpha:] 字母[a-zA-Z]
[:blank:] 空格或制表符[\t ]//t后有一个空格
[:cntrl:] ASCII控制字符(ASCII的0-31和ASCII 127)
[:digit:] 数字[0-9]
[:graph:] 和[:print:]一样,但不包括空格
[:lower:] 小写字母[a-z]
[:print:] 可打印字符
[:punct:] 既不属于[:alnum:]也不属于[:contrl:]的任何字符
[:space:] 空白字符,包括空格[\f\n\r\t\v ]//v后有空格
[:upper:] 大写字母[A-Z]
[:xdigit:] 十六进制数字[a-fA-F0-9]
8、匹配一个或多个字符‘+’
\w+,[0-9]+
9、匹配零个或多个字符‘*’
\w+[\w\.]*@[\w\.]+\.\w+
10、匹配零个或一个字符‘?’
https?://[\w./]+
11、匹配的重复次数{}
#[[:xdigit:]]{6}
\d{1,2}[-\/]\d{1,2}[-\/]\d{2,4}
\d+: \$\d{3,}\.\d{2}
12、防止过度匹配,在贪婪型元字符后加‘?’
* *?
+ +?
{n,} {n,}?
13、单词边界\b,非边界\B,字符串边界开头'^',字符串结尾'$',分行匹配模式(?m)
\bcat\b
\B-\B
^\s*<\?xml.*\?>
(?m)^\s*//.*$
14、支持子表达式
(\d{1,3}\.){3}\d{1,3}
(19|20)\d{2}
(((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.){3}((\d{1,2})|(1\d{2})|(1[0-4]\d)|(25[0-5]))
15、回溯引用匹配
[ ]+(\w+)[ ]+\1
16、向前查找模式'?='
.+(?=:) //http:www.google.com
17、向后查找'?<='
(?<=\$)[0-9.]+ //hello : $23.32
(?<=<[tT][iI][tT][lL][eE]>).*(?<=</[tT][iI][tT][lL][eE]>)
18、对前后查找取非
(?=) (?!)
(?<=) (?<!)
\b(?<!\$)\d+\b
19、嵌入条件(略)
</span>
03-25
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交