正则表达式

正则表达式
String类提供了下面几个方法来使用正则表达式
matches(String regex)
replaceAll(String regex, String replacement)
replaceFirst(String regex, String replacement)
split(String regex)

$  一行的结尾
^   一行的开头
()  子表达式的开始和结束位置
[]  括号表达式的开始和结束位置
{}  前面子表达式的出现频度
*   0+
+   1+
?   0||1
.   匹配除了换行符\n之外的任何单字符
/   用于转义下一个字符
|   两者任选一项


x   字符x(x可以是任意合法字符)
\0mmm   八进制数0mmm所表示字符
\xhh    十六进制0xhh所表示字符
\uhhhh  十六进制0xhhhh所表示Unicode字符
\t  制符表
\f  换页符
\n  换行符
\r  回车符
\a  报警符
\cx X对应控制符\cM匹配Ctrl-M

“\u0041\\” 匹配A\
“\u0061\t” 匹配a<制表符>
“\?\[” 匹配?[

.   匹配任何字符
\d  匹配0~9任何字符 digital 
\D  匹配非数字
\s  所有空白字符,包括空格、制表符、回车符、换页符、换行符等 space
\S  所有非空白字符
\w  所有单词字符,包括0~9所有数字,26个英文字符和下画线(_) word
\W  所有非单词字符

圆括号可以使用或运算符

((public)|(protected)|(private))

方括号表达式:

表示枚举          [abc],abc中任意一个字符
表示范围:-       [\\u0041-\\u0061]十六进制字符\u0041到\u0061任意字符。[a-cx-z]         
表示求否:^       [^abc],非abc任意字符
表示"与"运算:&&   [a-z&&[^bc]]表示[a-d]
表示"并"运算      并运算和前面的枚举类似。例如[a-d[m-p]]表示[a-dm-p]

边界匹配符

^    行的开头
$    行的结尾
\b   单词的边界   border
\B   非单词的边界  
\A   输入的开头   
\G   前一个匹配的结尾
\Z   输入的结尾,仅用于最后的结束符
\z   输入的结尾

数量表示符默认匹配贪婪模式,勉强模式用问号后缀(?)表示,只会匹配最少的字符。

 X?     X表达式出现0次或1次
 X*      X表达式出现0次或多次
 X+      X表达式出现1次或多次
 X{n}    X表达式出现n次
 X{n,}   X表达式出现至少n次
 X{n,m}  X表达式至少出现n次,至多出现m次

使用正则表达式
Pattern对象时正则表达式编译后在内存中的表示形式。正则表达式字符串会先被编译成Pattern对象,然后再利用Pattern对象创建对应的Matcher对象。执行匹配所涉及的状态保留在Matcher对象中,多个Matcher对象可共享同一个Pattern对象。
Matcher类的find(),group()可以从目标字符串中依次去除特定子串,例如互联网的网络爬虫。
Matcher还有几个常用方法:
start();
end();
lookingAt();
matches();
reset();

你可能感兴趣的:(java,正则表达式)