一、正则表达式介绍
正则表达式,又称正规表示法、常规表示法(Regular Expression,在代码中常简写为regex、regexp或者RE),正则表达式使用单个字符串来描述、匹配一系列符号某个句法规则的字符串。在很多文本编辑器中,正则表达式通常被用来检索、替换那些符号某个模式的文本。
二、正则表达式符号
正则表达式分为基本正则表达式和扩展正则表达式。
基本正则表达式:尽可能长的匹配符合模式的内容。
^ 锚定行首的符合条件的内容,用法格式"^pattern"
$ 锚定行尾的符合条件的内容,用法格式"pattern$"
. 匹配任意单个字符
* 匹配紧挨在其前面的字符任意次(零次或者多次)
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
[0-9] 匹配数字
[a-z] 匹配小写字母
[A-Z] 匹配大写字母
[a-Z] 匹配大小写字母
[:lower:] = a-z
[:upper:] = A-Z
[:alpha:] = a-Z
[:digit:] = 0-9
[:alnum:] 匹配大小写字母和数字 = a-Z 0-9
[:space:] 匹配空白字符
[:punct:] 匹配标点符号,即 " ' ? ! # $ : ;...
\w 匹配包括下划线的任意单词字符 = [a-Z0-9_]
\d 匹配数字 =[0-9]
\D 匹配非数字 =[^0-9]
\s 匹配空白符 =[[:space:]]
\ 转义字符,将特殊字符的特殊意义去除
? 匹配紧挨在其前面的字符0次或者1次
\{m,n\} 匹配其前面的字符至少m次,至多n次
\{0,n\} 至多n次,0-n次
\{3,\} 至少3次
\{m\} 精确匹配m次
\< 锚定词首,用法\<pattern,等于\bpattern
\> 锚定词尾 ,用法pattern\>,等于pattern\b
\<\> 锚定单词,用法\<pattern\>,等于\bpattern\b
\(\) 分组,用法\(pattern\)
示例:\(centos\).*\1,匹配centos之后接任意个字符之后又接一个centos的行
扩展正则表达式
+ 重复一个或者一个以上的前一个字符,如o+表示一个以上的o
? 0个或者1个前一个字符,如o?表示空白或者1个o
| 或,a|b,匹配a或者b
() 分组,如N(ame|AME)
()+ 多个重复组的判别,如查找A开头B结尾,中间有一个以上的xyz A(xyz)+B