用于查找字符串的正则表达式模式包含一些单词并且没有其他单词

时间:2014-03-01 15:29:22

标签: java regex string regex-negation

我正在使用Java regex util创建一个程序,现在我需要找到一些字符串,这些字符串有一些单词并且没有其他单词。

例如:

我想找到的字符串是' for'并删除其后的所有内容,但如果该字符串的中心位于',则我们什么都不做。

我想检查一些句子:

1. This program for all people =>这个程序(在'之后删除所有内容)

2. Centre for Effective Practice =>什么也不做,因为有'中心为'在句子中

我需要一个可以解决问题的正则表达式。

我也尝试使用这种模式:"(?=(for.*))(?!(Centre for))"然而它并没有很好地运作

1 个答案:

答案 0 :(得分:3)

您可以使用负面的lookbehind:

String str = "This program for all people";
String repl = str.replaceFirst("(?<!Centre) for.*", "");