一、Java正则表达式是什么?
正则表达式定义了字符串的模式;
正则表达式可以用来搜索、编辑或处理文本;
正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。
二、正则表达式语法
1、预定义字符类
| . | 任何字符(与行结束符可能匹配可能不匹配) |
| d | 数字[0-9] |
| D | 非数字[^0-9] |
| s | 空白字符[tnfr] |
| 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



