正则表达式

有些人在碰到问题时,就想:“我知道,我可以使用正则表达式。”现在,他们就有了两个问题。 ————jamie“jwz”Zawinski

 

正则表达式的强大之处在于引入特殊字符来定义字符集、匹配子组和重复模式。

1、符号

 1 foo #literal 匹配文本字符串的字面值literal
 2 foo|bar #re1|re2 匹配正则表达式re1或者re2
 3 b.b #. 匹配任何字符 (除了\n之外)
 4 ^Dear #^匹配字符串起始部分
 5 /bin/*sh$ # 匹配字符串终止部分
 6 [A-Za-z0-9]* #*匹配0次或是多次前面出现的正则表达式
 7 [a-z]+\.com #+ 匹配1次或是多次前面出现的正则表达式
 8 goo? #? 匹配0次或是1次前面出现的正则表达式
 9 [0-9]{3} #{N} 匹配N次前面出现的正则表达式
10 [0-9]{5,9} #{M,N} 匹配M~N次前面出现的正则表达式
11 [aeiou] #[...] 匹配来自字符集的任意单一字符
12 [0-9],[A-Za-z] #[..X-Y..]匹配X~Y范围中的任意单一字符
13 [^aeiou] #[^...] 不匹配刺激腹肌中出现的任意一个字符,包括某一范围的字符(如果在此字符集中出现)
14 .?[a-z] #(*|+|?|{})? 用于匹配上面批发呢出现/重复出现符号的非贪婪版本(*、+、?、{})
15 ([0-9]{3})?,f(oo|u)bar #(...) 匹配封闭的正则表达式,然后另存为子组

2、特殊字符

1 data\d+.txt #\d 匹配任何十进制数字,与[0-9]一致(\D与\d相反,不匹配任何非数值型的数字)
2 [A-Za-z]\w+ #\w 匹配任何字母数字字符,与[A-Za-z0-9_]相同(\W与之相反)
3 of\sthe #\s 匹配任何空格字符,与[\n\t\r\v\f]相同(\S与之相反)
4 \bThe\b #\b匹配任何单词边界(\B与之相反)
5 price:\16 #\N 匹配已保存的子组
6 \.,\\,\* #\c 逐字匹配任何特殊字符c
7 \ADear #\A(\Z) 匹配字符串的起始(结束)

 

 

posted @ 2018-04-09 23:11  fromzore  阅读(141)  评论(0编辑  收藏  举报