我需要找到一個字符串中的所有斜槓,不包括那些在它前面帶有「<」符號的斜槓。正則表達式:找到所有的斜槓,但「</」
/(?!<)(\/)/g
不能像我想要的那樣工作。
編輯:我忘了提及我使用JavaScript。建議的解決方案似乎是爲PHP。
我需要找到一個字符串中的所有斜槓,不包括那些在它前面帶有「<」符號的斜槓。正則表達式:找到所有的斜槓,但「</」
/(?!<)(\/)/g
不能像我想要的那樣工作。
編輯:我忘了提及我使用JavaScript。建議的解決方案似乎是爲PHP。
/(?<!<)([\/\\])/g
\正在執行'轉義文字',因爲斜線並不自然地指示被捕獲的字符。
你正在做一個負面的前瞻斷言。我將其改爲負面的後置斷言。
這個工具:https://regex101.com/真的幫助我理解正則表達式。它會告訴你你在找什麼。
可以使用negative lookbehind
,即:
/(?<!<\/)
正則表達式說明:
/(?<!<\/)
Match the character 「/」 literally «/»
Assert that it is impossible to match the regex below with the match ending at this position (negative lookbehind) «(?<!<\/)»
Match the character 「<」 literally «<»
Match the character 「/」 literally «\/»
視覺上,你的思想被愚弄了。
這(?!<)
看起來像一個負回顧後,但它實際上是一個負
先行。
這個(?<!<)
是一個負面的後視。
請注意,首先在正則表達式中放置一個斷言會減慢10到30次的正則表達式
。
爲了更好的性能,在字面後放置倒映/(\/)(?<!<\/)/
。
這聽起來像是一個HTML或XML解析問題。是嗎?如果是這樣,答案是「不要使用正則表達式」。請參閱:[用正則表達式解析XHTML](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags) – Sobrique
您正在使用哪種編程語言? –
我正在使用Javascript。 – dtrinh