在JavaScript 中跨多行使用正規表示式
在JavaScript 中,據稱是為多行匹配而設計的「m 」標誌無法捕捉內容跨越換行符。為了解決這個問題,需要一個更強大的解決方案。
關鍵是使用「[sS]」或「[^]」作為多行點。這些模式會匹配任何字符,包括換行符。這種方法可以有效地捕獲內容,無論其在多行上的分佈如何。
範例:
var ss = "<pre class="brush:php;toolbar:false">aaaa\nbbb\ncccddd"; var arr = ss.match( /
[\s\S]*?<\/pre>/gm ); console.log(arr); // Outputs: `<pre class="brush:php;toolbar:false">aaaa\nbbb\nccc`
更簡單的替代方案:
雖然提供的解決方案有效,但可以透過將“[sS]”替換為“.*?”來實現不太複雜的方法。此量詞非貪婪地匹配任意數量的字元(包括換行符),從而實現更有效率、更有針對性的匹配。
var arr = ss.match( /<pre class="brush:php;toolbar:false">.*?<\/pre>/gm ); console.log(arr); // Outputs: `<pre class="brush:php;toolbar:false">aaaa\nbbb\nccc`
提示:
以上是如何在 JavaScript 中有效使用正規表示式進行多行比對?的詳細內容。更多資訊請關注PHP中文網其他相關文章!