-1
誰能告訴我,爲什麼這個表達式:捕獲字符串的正則表達式結束
(<\s*script\s*>.*<\s*\/*script\s*>)
匹配這一整條生產線:
<script> some more javascript</script> ggg <script>
誰能告訴我,爲什麼這個表達式:捕獲字符串的正則表達式結束
(<\s*script\s*>.*<\s*\/*script\s*>)
匹配這一整條生產線:
<script> some more javascript</script> ggg <script>
你有兩個問題:
*
量詞使得終端交換匹配0個或更多字符'/'
。你可以通過刪除量詞來解決這個問題。 要求單個終止開關,將您的正則表達式更改爲:(<\s*script\s*>.*<\s*\/script\s*>)
.*
是貪婪的。這意味着它儘可能地抓住它,同時仍然匹配正則表達式的其餘部分。在這種情況下:<\s*\/*script\s*>
。這意味着如果你有多個「... < \ script>」,它將匹配整行而不是每個「...」。你想要的是匹配任何字符作爲幾次儘可能。這就是所謂的懶惰匹配。如果你實際使用http://www.regexr.com「參考」菜單中建立
(<\s*script\s*>.*?<\s*\/script\s*>)
:您可以限定任何量詞與?
做到這一點,在你的榜樣:
.*?
使用您正則表達式將成爲你的正則表達式,你可以在「量詞和交替」>「懶惰」下找到它
通過\/更換\/*。
\/*匹配或更多「/」。
沒有可用的鏈接 – benjamin
它刪除了鏈接,不會讓我再添加它90分鐘:-(將它張貼在後來 –
因爲您正在使用貪婪點匹配。使用'[\ s \ S] *?'或更適當的DOM解析器。 –