2014-03-01 41 views
0

我正在使用Java正则表达式util来创建程序,现在我需要找到一些字符串,其中有一些字词并且没有其他字词。查找字符串的正则表达式模式包含一些字词,并且没有其他字词

例如:

我想找到字符串,它有“的”后删除它的一切,但如果字符串“中心”,我们什么也不做。

有一些句子,我想检查:

1. This program for all people =>此程序(“为”后删除所有内容)

2. Centre for Effective Practice =>什么也不做,因为没有在一句“中心”

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

我也试着使用模式:"(?=(for.*))(?!(Centre for))"但它没有工作

回答

3

您可以使用这样的负回顾后:

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

@TimPietzcker:非常感谢您修复它。 – anubhava

+0

呃,如果'Centre'和'for'之间有多个空格,你的编辑现在会失败。在空格前面最好删除'+'或添加'\\ b'。 –

相关问题