1
是否可以使用正則表達式來創建匹配不包含特定字符串的片段的模式?有沒有辦法使用正則表達式來匹配不包含另一個字符串的字符串?
這片神奇的正則表達式將藉此輸入和檢查什麼的括號之間: (foo bar) (barfoo) (zab) (foozab)
,並只返回zab
,因爲它不包含括號之間foo
。
這是可能的,還是我應該捕獲括號之間的所有內容,並使用語言函數來排除它們?
是否可以使用正則表達式來創建匹配不包含特定字符串的片段的模式?有沒有辦法使用正則表達式來匹配不包含另一個字符串的字符串?
這片神奇的正則表達式將藉此輸入和檢查什麼的括號之間: (foo bar) (barfoo) (zab) (foozab)
,並只返回zab
,因爲它不包含括號之間foo
。
這是可能的,還是我應該捕獲括號之間的所有內容,並使用語言函數來排除它們?
根據引擎的不同,可以使用前視聲明。
\(((?:(?!foo)[^)])+)\)
該正則表達式匹配一個括號字符串,其中字符串裏面的人物永遠不要匹配子表達式「富」(在這種情況下只是一個字符串)。
這是展開形式:
\( # match the opening (
( # capture the text inside the parens
(?: # we need another group, but don't capture it
(?!foo) # fail if the sub-expression "foo" matches at this point
[^)] # match a non-paren character
)+ # repeat that group
) # end the capture
\) # end the parens