首頁  >  文章  >  web前端  >  如何在 JavaScript 中有效使用正規表示式進行多行比對?

如何在 JavaScript 中有效使用正規表示式進行多行比對?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-03 05:34:02293瀏覽

How to Effectively Use Regex in JavaScript for Multiline Matching?

在JavaScript 中跨多行使用正規表示式

在JavaScript 中,據稱是為多行匹配而設計的「m 」標誌無法捕捉內容跨越換行符。為了解決這個問題,需要一個更強大的解決方案。

關鍵是使用「[sS]」或「[^]」作為多行點。這些模式會匹配任何字符,包括換行符。這種方法可以有效地捕獲內容,無論其在多行上的分佈如何。

範例:

var ss = "<pre class="brush:php;toolbar:false">aaaa\nbbb\nccc
ddd"; 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn