我試圖在正則表達式中匹配並捕獲任何包含「球」但沒有在其前面的「腳」或「籃子」的單詞。例如,我想匹配「排球」和「躲避球」,但不是「籃球」或「足球」。 重要的是我不能使用一個積極的組,但一個消極的組。 我的嘗試:正則表達式否定組
[^(?:foot|basket)(ball)]
!(?:foot|basket)(ball)
發現對面是相當簡單:
(?:foot|basket)(ball)
,但是這不是我要找的。我需要另一種方式。
編輯:這是PHP,這是一個「preg_replace」命令。
有一個以上的正則表達式的語法。你不能只是提出一個關於「正則表達式」的問題,而不會描述它使用的語言或庫。 PCRE(如果是這樣,Perl的實現?Python的?Java的?)? BRE? ERE? RE2? –
你正在尋找所謂的「負面後顧」,在大多數RE引擎中(JavaScript不支持它)是'(?<!....)'。 – Kenney
@Charles我不明白爲什麼回溯必須參與實施;在解析輸入字符串時,可以在正則表達式開始時針對負向後置表達式進行檢查。如果匹配,則正則表達式失敗。 – Kenney