?=的语法是A(?=B),意思是B之前的A
如下面代码所示,匹配到了英国人之前的中国人。
@Test
public void test3(){
String str = "中国人美国人中国人英国人";
// 英国人之前的中国人
String regEx = "中国人(?=英国人)";
str = str.replaceAll(regEx, "-");
System.out.println(str);
}
输出结果
中国人美国人-英国人
?!的语法是A(?!B),意思是非B之前的A
如下面代码所示,匹配到了美国人之前的中国人
@Test
public void test3(){
String str = "中国人美国人中国人英国人";
// 英国人之前的中国人
String regEx = "中国人(?!英国人)";
str = str.replaceAll(regEx, "-");
System.out.println(str);
}
输出结果
-美国人中国人英国人
?<=的语法是(?<=A)B,意思是A之后的B
如下面代码所示,匹配到了美国人之后的中国人
@Test
public void test3(){
String str = "美国人中国人英国人中国人";
// 英国人之前的中国人
String regEx = "(?<=美国人)中国人";
str = str.replaceAll(regEx, "-");
System.out.println(str);
}
输出结果
美国人-英国人中国人
?<!的语法是(?<!A)B,意思是非A之后的B
如下代码所示,匹配到了英国人之后的美国人
@Test
public void test3(){
String str = "美国人中国人英国人中国人";
// 英国人之前的中国人
String regEx = "(?<!美国人)中国人";
str = str.replaceAll(regEx, "-");
System.out.println(str);
}
输出结果
美国人中国人英国人-
网友评论