在《正则指引》的附录看到了这个列表,很有用,拿来分享一下。
#在日常开发中,需要使用正则表达式解决的各种问题经常是固定的,重复的,所以这里列一些正则表达式供查阅
#除非特殊说明,否则一定使用的是ASCII匹配规则
#如果将正则表达式用于检证,一般应该在表达式首尾加上\A和\z;如果需要将其用于提取,应该在首位分别加上对应的断言。
#整数
#举例
1024
89
10
#正则表达式
[0-9]+
#如果用于数据提取,不需要添加断言
#十六进制数
#举例
4e00
9F
A3D6
#正则表达式
[0-9a-fA-F]+
#MD5字符串
#举例
C37B58C783456BF879C3DD5C519195A2
44912ED4AD09F0D2CA5066A16209F717
#正则表达式
[0-9a-fA-F]{32}
#常见的MD5字符串由32位十六进制数构成
#如果用于数据提取,还应该在首尾添加断言,保证之前和之后不能出现十六进制字符,
#也就是在表达式开头加上
(?<![0-9a-fA-F])
#在末尾加上
(?![0-9a-fA-F])
#浮点数
#举例
+3.14
+0.07
.7
3.6
-3.14
-12
#正则表达式
(+?([0-9]+|[0-9]+\.[0-9]+|\.[0-9]+)|-?([0-9]+|[0-9]+\.[0-9]+))
#浮点数包括整数部分,小数点,小数部分,分别由\d+ ,\. ,\d+ 匹配,单独来看它们都不一定要出现,
#但不可能三个部分都不出现,所以用多选结构 ([0-9]+|[0-9]+\.[0-9]+|\.[0-9]+) 表示。
#另外,之前可能出现符号,如果出现的是+,则各种形式都没有问题,
#如果出现的-,一般不会容许出现-.7之类的写法,所以还需要用一个多选结构
#如果用于数据提取,还应该在首尾添加断言。
#一般来说判断之前的字符不是点号,之后的字符一般不能是点号,
#但如果是句号,则它之后不能是其他数字字符,这样就可以避免错误匹配2010.12.10之类的数据。
#所以要在表达式开头加上
(?<!.)
#在末尾加上
(?!.[0-9])