2010-12-02 412 views
5

這應該很簡單。我需要一個正則表達式來選擇不包含某個單詞的所有內容。REGEX:選擇不等於某個字符串的所有內容

所以如果我有這句話:「這句話中間有一個詞。」 而正則表達式得到的只是「中等」,我應該選擇該句子中的所有內容,而不是「中等」。

有沒有簡單的方法來做到這一點?

謝謝。

+0

呃,只需將數據複製到一個字符串var並執行搜索/替換....無論如何可能比RE更便宜。 – Keng 2010-12-02 18:36:09

+0

這個單詞可以在句子中多次出現嗎? – 2010-12-02 19:50:04

回答

2

單個正則表達式匹配操作不可能是不連續的。

您就可以使用兩個捕獲組:

(.*)middle(.*)

然後拼接捕獲組1和2在賽後的內容。

您可能希望在解析器中啓用「點也匹配換行符」選項。
見例如Java's DOTALL.NET's SinglelinePerl's s

+0

當/如果你這樣做,確保你啓用`.`以匹配換行符。 – Keng 2010-12-02 18:29:00

1

正環視是要走的路:

/^(.+)(?=middle)/ -- gets everything before middle, not including middle 

/(?!middle)(.+)$/ -- gets everything after middle, not including middle 

然後你只合並雙方

的結果
相關問題