2014-03-01 39 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'。 –

相關問題