要求如下:
字符串中必须包含 "中国",但是不能包含"北京"
test:
1. 国庆节中国北京天安门看升国旗 Invalid (包含"中国",但包含"北京")
2. 国庆节中国天安门看升国旗 Valid (包含"中国",不包含"北京")
3. 国庆节中国天安门北区看升国旗 Valid(包含"中国",不包含"北京")
------解决思路----------------------
Pattern.compile("^(?=.*?(中国))(?!.*?北京).*$")
------解决思路----------------------
import java.util.regex.*;
public class Cs
{
public static void main(String[] args)
{
String s="1. 国庆节中国北京天安门看升国旗\n2. 国庆节中国天安门看升国旗\n3. 国庆节中国天安门北区看升国旗";
String p1="(?m)(?=.*中国)(?!.*北京).*";
Pattern p=Pattern.compile(p1);
Matcher m=p.matcher(s);
while(m.find()){
System.out.println(m.group());
}
}
}
运行结果:
2. 国庆节中国天安门看升国旗
3. 国庆节中国天安门北区看升国旗
请按 ENTER 或其它命令继续