前言
正则表达式,只要是从事IT工作的同学都不会陌生,网络等基础类的IT从业人员会将正则表达式用于,例如在Voice方向的IP电话时,会用正则表达式匹配拨号规则。像一些日志服务器会有正则表达式来匹配相应的字符串等等。
正则表达式可以包含特殊字符或者普通字符,普通字符就是我们常见的大写字母,小写字母,数字等。在简单的正则表达式中,它仅仅匹配这些字符本身。也可以使用高级匹配模式。
正常表达式字符及相应的意义
匹配字符 | 意义 |
---|---|
. | 匹配任意单个字符 |
^ | 锚定行首,其后跟一个字符串表示匹配以该字符串开头的行 |
$ | 锚定行尾,其前跟一个字符串表示匹配以该字符串结尾的行 |
* | 默认工作在贪婪模式下,匹配其前的字符可以出现任意次 |
+ | 匹配其前的字符至少出现一次,就是[1,∞) |
? | 默认工作在贪婪模式下,匹配其前的字符可有可无,换句话说,其前的字符可以是0次或者1次 |
*?,+?,?? | 这是前3种模式的非贪婪模式的匹配方式。 |
{m,n} | 默认工作在贪婪模式下,匹配其前的字符至少出现m次,至多出现n次。 |
{m,n}? | 上面匹配方式的非贪婪模式 |
\ | 逃逸符,即去掉某些字符的特殊意义,或者指定某些字符具有特殊意义 |
[] | 匹配中括号内出现的单个字符 |
[^] | 如果在中括号内前面加个托字符表示匹配中括号内出现的字符外的单个字符 |
" | " |
(…) | 将小括号内的字符当成一个整体来匹配 |
“\” 逃逸符组成的特定字符串
使用“\”组成的特定的序列,并且字符是从下面的组合。
如果这个普通的字符不在这个列表中,正则表达式将匹配第二个字符。
匹配字符 | 意义 |
---|---|
\number | 匹配组内为相同数字的内容 |
\A | 仅匹配以该字符串开始内容 |
\Z | 仅匹配以该字符串结尾的内容 |
\b | 匹配空字符串,但是仅仅是在单词的词首或者词尾 |
\B | 匹配空字符串,但不是在单词的词首或者词尾 |
\d | 匹配十进制数字,相当于"[0-9]" |
\D | 匹配非数字的字符,相当于“[^\d]” |
\s | 匹配任意空白字符,相当于“[ \t\n\r\f\v]” |
\S | 匹配任意非空白字符,相当于“[^\s]” |
\w | 匹配所有字母跟数字,相当于“[a-zA-Z0-9_]” |
\W | 匹配“\w”的补集,相当于[^\w] |
\ | 匹配“\”本身 |