正則表達式之分組的回溯引用問題

正則表達式簡介

正則表達式,又稱規則表達式。(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE),計算機科學的一個概念。正則表達式通常被用來檢索、替換那些符合某個模式(規則)的文本。

許多程序設計語言都支持利用正則表達式進行字符串操作。例如,在Perl中就內建瞭一個功能強大的正則表達式引擎。正則表達式這個概念最初是由Unix中的工具軟件(例如sed和grep)普及開的。正則表達式通常縮寫成“regex”,單數有regexp、regex,復數有regexps、regexes、regexen。

引子

前端開發中,難免會遇到需要匹配標簽的需求,這麼簡單的需求,不就是兩個尖括號包裹一個標簽名嘛,接下來一頓操作,/<[\w]+>.*<\/[\w]+>/g,然後完美匹配瞭 <div>xx</div> 等內容,需求完成…

等等,咋看之下,當前正則確實能匹配各種標簽,但是它同樣能匹配類似 <div>xx</p> 的內容。這就意味著我們需要保持兩個尖括號內的內容相同才行。

正則之分組回溯引用 分組 ()

所謂分組,就是把要匹配的內容放在括號()裡。括號裡的內容可以視為是一個整體的子表達式

/<([\w]+)>.*<\/([\w]+)>/g

回溯引用 \N

正則表達式還提供瞭一種引用之前匹配分組的機制,有些時候,我們或許會尋找到一個子匹配,該匹配接下來會再次出現。

// 該表達式中的 \1 就是整個表達式中的第一個分組
var reg = /<([\w]+)>.*<\/\1>/
reg.test('<div>xx</div>') // true
reg.test('<div>xx</p>') // false

到此這篇關於正則表達式之分組的回溯引用問題的文章就介紹到這瞭,更多相關正則表達式回溯引用內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: