我不能得到這個工作。
我試圖從[A](B)
中匹配A和B,但只應在匹配項沒有以!
開頭的情況下進行匹配。比賽[A](B)但不是![A](B)
我已經到目前爲止。 /\[([^\]]+)]\(([^)]+)\)/
它匹配A和B,但如果我加[^\!]
它不會匹配任何東西。
/[^\!]\[([^\]]+)]\(([^)]+)\)/
值![A](B)
可以在一個較大的字符串的任何地方。
任何想法爲什麼這不起作用?
我不能得到這個工作。
我試圖從[A](B)
中匹配A和B,但只應在匹配項沒有以!
開頭的情況下進行匹配。比賽[A](B)但不是![A](B)
我已經到目前爲止。 /\[([^\]]+)]\(([^)]+)\)/
它匹配A和B,但如果我加[^\!]
它不會匹配任何東西。
/[^\!]\[([^\]]+)]\(([^)]+)\)/
值![A](B)
可以在一個較大的字符串的任何地方。
任何想法爲什麼這不起作用?
這TextPad工作對我來說(這就是我對此刻正則表達式,你可能不得不修改逃逸。):
\(^\|[^\!]\)\[[^]]+\]([^)]+)
的\(^\|[^\!]\)
匹配行的開頭或!
以外的字符。
如果您使用的是支持回顧後當時正則表達式以下應該工作
(?<!!)\[A\]\(B\)
,第一組是指沒有一個!背後
Lookbehind不受支持,我正在使用JavaScript。 – Oleander
既然你不能使用向後看斷言,可使用兩種不同的正則表達式與邏輯運算符:
/\[([^\]]+)]\(([^)]+)\)/ && !(/!\[([^\]]+)]\(([^)]+)\)/)
什麼叫「它不會匹配任何」呢? [A](B)不再與你的新模式匹配/ [^ \!] \ [([^ \]] +)] \(([^)] +)\)/? – PierrOz
/[^ \!] \ [([^ \]] +)] \(([^)] +)\)/不會與[[A](B)]匹配。 – Oleander
什麼正則表達式風格/編程語言? –