正则表达式语法
java中需要用\\来表示\
正则表达式 | 匹配 |
---|---|
. | 任意单个字符,除了换行 |
(ab | cd) | ab或者cd |
[abc] | a、b或者c |
[^acb] | 除了a、b或者c外的任意字符 |
[a-em-p] | a到e或者m到p |
a-e&&[c-p]] | a到e与c到p的交集 |
\d | 一个数字(大写D表示非数字) |
\w | 单词字符 |
\s | 空白字符 |
p* | 0或者多次出现模式p(p中有多个元素要用括号括起来,,下面同理) |
p+ | 1或者多次出现模式p |
p? | 0或者1次出现模式p |
p{n} | 正好出现n次模式p |
p{n,} | 至少出现n次模式p |
p{n,m} | n ≤ \leq ≤ 模式p < < < m |
替换和拆分字符串
1.replaceAll 方法替换所有匹配的字符串,replaceFirst方法替换第一个匹配的字符串
2.split(regex)方法使用匹配的分隔符将一个字符串拆分为子字符串
String[] tokens = "Java1HTML2Perl".spilt("\\d")
split(regex,limit)方法中,limit参数确实模式匹配多少次。如果limit
≤
\leq
≤ 0,split(regex,limit)等同于split(regex)。如果limit
>
>
> 0,模式最多匹配limit - 1次。
3.默认情况下,量词符(+, *)会尽可能匹配最多次。但是可以通过在后面添加问好(?)来改变量词符的默认情况,使得它匹配尽可能少的次数。