正则表达式
1.正则历史
grep -> egrep -> POSIX (Portable Operation System Interface of Vnix )-> Perl (Practical Extraction and Reporting Language) -> PCRE
正则表达式定界符 "/"
2.行定位符( ^ )和 ( $ )
^表示开始,$表示结束
^tm 匹配 tm开头的字符串
tm$ 匹配tm 结束的字符串
tm 匹配任意位置
3.单词定界符 ( \b \B )
\btm\b 匹配包含tm的完整单词
\Btm\B 匹配不是完整单词且包含tm的字符串
4.字符类( [ ] )
正则区分大小写,如果要忽略大小写需要加"[ ]",一个方括号匹配一个字符
[Tt][Mm] 匹配不区分大小写的tm
(POSIX和PCRE略有不同)其他预定义的字符类:
[:digit:] 匹配十进制数字集合,等同与[0~9]
[[: alnum:]] 匹配字母和数字集合 等同[a-zA-Z0-0]
[:alpha:] 匹配字母集合 等同[a-zA-Z]
[:blank:] 匹配空格和制表符
[:xdigit:] 匹配十六进制数字
[:punct:] 匹配特殊字符集 ~!@#$%等
[:print:] 匹配所有可打印字符 包括空白
[:space:] 匹配空白字符
[:graph:] 匹配所有可打印字符 不包括空白
[:upper:] [A-Z]
[:lower:] [a-z]
[:cntrl:] 控制字符
注:“ [ ] ” 匹配单字符 “|” 匹配字符串 如:
tm|TM|tM|Tm
5.连字符(-) 表示字符范围
6.排除字符( [^] )
7.限定符 (?* + {n,m}) 匹配重复出现的字母或者字符串
8.点号字符(.) 匹配换行之外的任意一个字符
9.转义 不可以打印字符(\)
10.括号 ( () )
11.反向引用
(?P<fir>[a-z])(?P<sec>[A-Z])(?P=fir)(?p=sec) 定义并反向引用
12.模式修饰
(?i)忽略大小写
(?x)忽略空白字符