符号 | 说明 | 举例 |
literal | 匹配字符串的值 | foo |
rel|rel2 | 匹配正则表达式rel1或rel2 | foo|bar |
. | 匹配任何字符(换行符除外) | b.b |
^ | 匹配字符串开始 | ^Doctor |
$ | 匹配字符串结尾 | /bin/*sh$ |
* | 匹配前面出现的正则表达式0次或多次 | [A-Za-z0-9]* |
+ | 匹配前面出现的正则表达式1次或多次 | [a-z]+\.com |
? | 匹配前面出现的正则表达式0次或1次 | goo? |
{N} | 匹配前面出现的正则表达式N次 | [0-9]{3} |
{M,N} | 匹配重复出现M次到N次的正则表达式 | [0-9]{5,9} |
[...] | 匹配字符组里出现的任意一个字符 | [aeIoU] |
[..X-Y..] | 匹配从字符X到Y中的任意一个字符 | [0-9],[A-Za-z] |
[^...] | 不匹配此字符集中出现的任何一个字符,包括某一范围的字符(如果在此字符集中出现) | [^aeIoU],[^A-Za-z] |
(*|+|?|{})? | 用于上面出现的任何“非贪婪”版本,重复匹配次数符号(*,+,?,{}) | .*?[a-z] |
(...) | 匹配封闭括号中正则表达式,并保存为子组 | ([0-9]{3})?,f(oo|u)bar |
符号 | 说明 | 举例 |
\d | 匹配任何数字,和[0-9]一样(\D是\d的反义) | data\d+.txt |
\w | 匹配任何数字字母字符,和[A-Za-z0-9]相同(\W是\w的反义) | [A-Za-z]\w+ |
\s | 匹配任何空白字符,和[\n\t\r\v\f]相同(\S是\s的反义) | of\sthe |
\b | 匹配单词边界(\B是\b的反义) | \bThe\b |
\nn | 匹配已保存的子组(请参考(...)) | price:\16 |
\c | 逐一匹配特殊字符c(即取消它的特殊含义,按字面匹配)\.,\\,\* | \.,\* |
\A (\Z) | 匹配字符串的起始(结束) | \ADear |
1. 用管道符号(|)匹配多个正则表达式模式:
它的意思是选择被管道符号分隔的多个不同的正则表达式中的一个(相当于逻辑或)。例如:
正则表达式 匹配的字符串
at|home at,home
r2d2|c3p0 r2d2,c3b0
2. 匹配任意一个单个的字符(.)
点符号或句号(.)符号匹配除换行符(NEWLINE)外的任意一个单个字符
正则表达式 匹配的字符串
f.o 在"f"和"o"中间的任何字符,如fao,f9o,f#o等
3. 从字符串的开头或结尾或单词边界开始匹配(^/$ /\b /\B)
正则表达式 匹配的字符串
^From 匹配任何以From开水的字符串
/bin/tcsh$ 匹配任何以/bin/tcsh结束的字符串
^Subject:hi$ 匹配仅由Subject:hi组成的字符串
\bthe 匹配任何以"the"开始的字符串
\Bthe 任意包含"the"但不以"the"开通的单词
\b和\B是用来匹配单词边界。两者之间的区别是,\b匹配的模式是一个单词边界,就是说,与之对应的模式一定在一个单词的开头,不论这个单词的前面是有字符(该词在一个字符串中间),还是没有字符(该单词在一行的起始处)。\B只匹配出现在一个单词中间的模式(即不再单词边界上的字符).
4. 创建字符类([])
正则表达式 匹配的字符串
b[aeiu]t bat,bet,bit,but
[cr][23][dp][o2] 如c3do,r3p2,r2d2等
5. 指定范围(-)和否定(^)
如: z.[0-9],[^\t\n],
["-a]:在ASCII字符集中,码值在"和a之间的任意一个字符
6. 使用闭包操作符(*,{})实现多次出现/重复匹配
*:匹配它左边那个正则表达式出现0次或者0次以上的情况(kleene闭包操作符);
+:匹配它左边那个正则表达式至少出现一次的情况(正闭包操作符);
?:匹配它左边那个正则表达式出现0次或1次的情况.
{}:如果是一个值,表示匹配N次出现;如果是一对值,即{M,N},就表示匹配M次到N次出现。
正则表达式 匹配的字符串
[dn]ot? 'd'或'n'后面接'o',最后是最多一个字符't',即do,no,dot,not
0?[1-9] 1-9中的任意一位数字,前面可能还有个'0'
[0-9]{15,16} 15或16位数字,例如:信用卡号码
7. 特殊字符集
正则表达式 匹配的字符串
\w+-\d+ 一个由字母或数字组成的字符串,和至少一个数字,两部分中间由'-'相连
[A-Za-z]\w+ 第一个字符是字母,其余字符是字母或数字
\d{3}-\d{3}-\d{4} 美国电话号码,例如:800-555-1212
\w+@\w+\.com 简单的XXX@YYY.com格式的电子邮件地址
8.用圆括号()建组
一对圆括号()和正则表达式一起使用时可以实现以下任意一个(或两个)功能:
1.对正则表达式进行分组
2.匹配子组
正则表达式 匹配的字符串
\d+(\.\d*)? 表示简单浮点数,即任意个十进制数字,后面跟一个可选的小数点,然后跟0或多个十进制数
原文链接:https://www.f2er.com/regex/361356.html