请给我一些关于正则表达式的帮助。基本上,我正在寻找能够匹配任何东西但包含关键词的东西。
正则表达式应匹配任何不包含“bar”的内容
String i1 = "foo";
String i2 = "foo bar";
String i3 = "bar foo";
Pattern p = Pattern.compile(".*\\(!(bar)\\).*");
Matcher matcher = p.matcher(i1);
System.out.println(matcher.matches()); // false, should be true
matcher = p.matcher(i2);
System.out.println(matcher.matches()); // false
matcher = p.matcher(i3);
System.out.println(matcher.matches()); // false
如何更改正则表达式以正确执行包含检查?
答案 0 :(得分:2)
^(?:(?!bar).)*$
除非我弄错,否则正是你要找的。
答案 1 :(得分:0)
难道你不能只匹配关键字并否定匹配? 如:
String i1 = "foo";
Pattern p = Pattern.compile(".*\\((bar)\\).*");
Matcher matcher = p.matcher(i1);
System.out.println(!matcher.matches());
否则我会看一下前瞻/后视操作员......