正则表达式:字符串处理工具,可以对字符串进行查找、提取、分隔、替换等操作。

一、正则表达式支持的合法字符

x:可代表任何合法的字符

\0mnn:八进制数0mnn表示的字符

\xhh:十六进制值0xhh表示的字符

\uhhh:十六进制值0xhhhh所表示的Unicode字符

\t:制表符('\u0009')

\n:换行符('\u000A')

\r:回车符('\u000D')

\f:换页符('\u000C')

\a:报警符('\u0007')

\e:Escape符('\u001B')

\cx:x对应的控制符。例如,\cM匹配Ctrl+M。x值必须为A~Z或a~z之一。

二、正则表达式中的特殊字符

如需匹配则必须首先将这些字符转义,也就是再添加一个反斜线。

S:匹配一行的结尾。要匹配S字符本身,使用\S

^:匹配一行的开头。要匹配字符本身,使用\^

():标记子表达式的开始和结束位置,要匹配^字符本身,请使用\(   \)

[]:用于确定中括号表达式的开始和结束位置。要匹配这些字符,使用\[  \]

{}:用于标记前面子表达式可以出现的频度。要匹配这些字符,使用\{ \}

*:指定前面子表达式可以出现零次或多次,要匹配*字符本身,使用\*

+:指定前面子表达式可以出现一次或多次,要匹配+字符本身,使用\+

?:指定前面子表达式可以出现零次或一次。要匹配?本身,使用\?

.:匹配除换行符\n之外的任何单字符,要匹配.字符本身,使用\.

\:用于转义下一个字符,或指定八进制 十六进制字符,如匹配字符本身,使用\\

|:指定两项之间任选一项,如果要匹配|本身,使用\|

注意:Java字符串中反斜杠本身需要转义,因此\\\\表示一个反斜杠,\\.表示一个.。

三、预定义字符

·:可以匹配任何字符

\d:匹配0~9的所有数字

\D:匹配非数字

\s:匹配所有的空白字符,包括空格、制表符、回车符、换页符、换行符等

\S:匹配所有的非空白字符

\w:匹配所有的单词字符,包括0~9所有数字、26个英文字母和下划线(_)

\W:匹配所有的非单词字符

提示:d是digit的意思,代表数字;s是space的意思,代表空白;w是word的意思,代表单词。d,s,w的大写形式恰好匹配与之

相反的字符

四、方括号表达式

处理特殊情况:比如只想匹配a~f的字母,或者匹配除了ab之外的所有小写字母,或者匹配中文字符

表示枚举:例如[abc],表示a、b、c其中任意一个字符:[gz],表示g、z其中任意一个字符

表示范围:-:例如[a-f],表示a~f范围内的任意字符:[\\u004-\\u0056],表示十六进制字符\u0041到\u0056范围的字符。、

范围可以和枚举结合使用,如[a-cx-z],表示a-c,x-z范围内的任意字符

表示求否:^:例如[^abc],表示非a、b、c的任意字符:[^a-f],表示不是a-f范围内的任意字符

表示“与”运算:&&:例如[a-z&&[def]],求a~z和[def]的交集,表示d、e、f

表示“并”运算:并运算与前面的枚举类似,例如[a-d[m-p]],表示[a-dm-p]

五、边界匹配符

^   行的开头

S    行的结尾

\b    单词的边界

\B    非单词的边界

\A    输入的开头

\G    前一个匹配的结尾

\Z    输入的结尾,仅用于最后的结束符

\z     输入的结尾

 

posted on 2017-03-02 11:31  BoGummyYoung  阅读(230)  评论(0编辑  收藏  举报