首頁 > web前端 > js教程 > 主體

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

Mary-Kate Olsen
發布: 2024-11-03 05:34:02
原創
292 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板