一、Java正则表达式是什么?
正则表达式定义了字符串的模式;
正则表达式可以用来搜索、编辑或处理文本;
正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
二、正则表达式语法
1、预定义字符类
. | 任何字符(与行结束符可能匹配可能不匹配) |
\d | 数字[0-9] |
\D | 非数字[^0-9] |
\s | 空白字符[\t\n\f\r] |
\w | 单词字符[a-z A-Z 0-9] |
\W | 非单词字符[^\w] |
注意:任何预定义字符没有加上数量词之前都只能匹配一个字符而已。
2、Greedy数量词
X? | X,一次或一次没有 |
X* | X,零次或多次 |
X+ | X,一次或多次 |
X{n} | X,恰好n次 |
X{n,} | X,至少n次 |
X{n,m} | X,至少n次,但是不超过m次 |
3、范围词
[abc] | a、b或c(简单类) |
[^abc] | 任何字符,除了a、b或c(否定) |
[a-z A-Z] | a到z或A到Z,两头字母包括在内(范围) |
[a-d[m-p]] | a到d或m到p:[a-d m-p](并集) |
[a-z&&[def]] | d、e或f(交集) |
注意:范围词内不管内容多长,没有数量词的配合都只能匹配一个字符。
4、边界匹配器
^ | 行的开头 |
$ | 行的结尾 |
\b | 单词的边界 |
\B | 非单词的边界 |
\A | 输入的开头 |
\G | 上一个匹配的结尾 |
\Z | 输入的结尾,仅用于最后的结束符(如果有的话) |
\z | 输入的结尾 |
5、应用
匹配 | matches() |
切割 | split() |
替换 | replace() |
6、实例:
代码:
import java.util.regex.*;
lass RegexExample{
public static void main(String[] args){
String content = "I am noob " + "from runoob.com";
String pattern = ".*runoob.*";
boolean isMatch = Pattern.matches(pattern,content);
System.out.println("字符串中是否包含了 'runoob' 子字符串?" + isMatch;
}
}
输出结果:
是否包含了 'runoob' 子字符串?true