如何編寫一個正則表達式,它將匹配以I
開頭的所有單詞,但單詞Integer
除外?如何匹配以「I」開頭但不是「Integer」一詞的單詞?
實施例:
t1: Integer;
t2: Interface;
t3: IXml;
結果應該是Interface
和IXml
。
如何編寫一個正則表達式,它將匹配以I
開頭的所有單詞,但單詞Integer
除外?如何匹配以「I」開頭但不是「Integer」一詞的單詞?
實施例:
t1: Integer;
t2: Interface;
t3: IXml;
結果應該是Interface
和IXml
。
這應該這樣做:
I(?!nteger\b)\w+
...雖然佩德羅,不幸的是,並沒有指定他有哪種正則表達式。並非所有的正則表達式庫都支持負向預測。 – 2010-07-21 14:56:16
您應該刪除\ w,因爲它與de semicolumn不匹配;在例子中給出。 – Toto 2010-07-21 14:56:55
@ M42:分號無意匹配。 – SilentGhost 2010-07-21 15:02:47
如何:
I(?!nteger).*
如果您不能使用作爲SilentGhost建議先行斷言,您可以使用基本的正則表達式表達了同樣的語法:
I(\b|[A-Za-mo-z][A-Za-z]*|n(\b|[A-Za-su-z][A-Za-z]*|t(\b|[A-Za-df-z][A-Za-z]*|e(\b|[A-Za-fh-z][A-Za-z]*|g(\b|[A-Za-df-z][A-Za-z]*|e(\b|[A-Za-qs-z][A-Za-z]*|r[A-Za-z]+))))))
它應該匹配單個「我」還是不匹配? – MikeD 2010-07-21 14:53:23
無論如何,這裏有很多微不足道的問題,而且這個問題有點棘手,因爲你必須向前看,然後「重新消費」你看到的同樣的信件。 – mquander 2010-07-21 14:54:21
@ back2dos - 除了粗魯和擊敗本網站的目的之外,所發佈的一個答案清楚地表明,儘管並不困難,但解決方案與您聲稱的一樣微不足道。 – adamk 2010-07-21 14:54:35