您好,登錄后才能下訂單哦!
這篇文章主要介紹“JS正則表達式如何分組和引用”,在日常操作中,相信很多人在JS正則表達式如何分組和引用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JS正則表達式如何分組和引用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
JS正則表達式怎樣分組和引用
這里的括號僅僅為了將 elp 自表達式與整個表達是隔離(因為 h 是必選的)。
第二種情況,括號用來分組,當正則表達式執行完成之后,與之匹配的文本將會按照規則填入各個分組,比如,某個數據庫的主鍵是這樣的格式:四個字符表示省份,然后是四個數字表示區號,然后是兩位字符表示區縣,如 yunn0871cg 表示云南省昆明市呈貢縣(當然,看起來的確很怪,只是舉個例子),我們關心的是區號和區縣的兩位字符代碼,怎么分離出來呢?
var pattern = /\w{4}(\d{4})(\w{2})/;br data-filtered="filtered">
var result = pattern.exec("yunn0871cg");br data-filtered="filtered">
print("city code = "+result[1]+", county code = "+result[2]);br data-filtered="filtered">
result = pattern.exec("shax0917cc");br data-filtered="filtered">
print("city code = "+result[1]+", county code = "+result[2]);br data-filtered="filtered">
正則表達式的 exec 方法會返回一個數組(如果匹配成功的話),數組的第一個元素(下標為0)表示整個串,第一個元素為第一個分組,第二個元素為第二個分組,以此類推。因此上例的執行結果即為:
JS正則表達式怎樣分組和引用
city code = 0871, county code = cgbr data-filtered="filtered">
city code = 0917, county code = ccbr data-filtered="filtered">
第三種情況,括號用來對引用起輔助作用,即在同一個表達式中,后邊的式子可以引用前邊匹配的文本,我們來看一個非常常見的例子:我們在設計一個新的語言,這個語言中有字符串類型的數據,與其他的程序設計語言并無二致,比如:
var str = "hello, world";br data-filtered="filtered">
var str = 'fair enough';br data-filtered="filtered">
均為合法字符,我們可能會設計出這樣的表達式來匹配該聲明:
var pattern = /['"][^'"]*['"]/;br data-filtered="filtered">
看來沒有什么問題,但是如果用戶輸入:
var str = 'hello, world";br data-filtered="filtered">
var str = "hello, world';br data-filtered="filtered">
我們的正則表達式還是可以匹配,注意這兩個字符串兩側的引號不匹配!我們需要的是,前邊是單引號,則后邊同樣是單引號,反之亦然。因此,我們需要知道前邊匹配的到底是“單”還是“雙”。這里就需要用到引用,JavaScript 中的引用使用斜杠加數字來表示,如\1 表示第一個分組(括號中的規則匹配的文本),\2 表示第二個分組,以此類推。因此我們就設計出了這樣的表達式:
var pattern = /(['"])[^'"]*\1/;br data-filtered="filtered">
在我們新設計的這個語言中,為了某種原因,在單引號中我們不允許出現雙引號,同樣,在雙引號中也不允許出現單引號,我們可以稍作修改即可完成:
var pattern = /(['"])[^\1]*\1/;br data-filtered="filtered">
這樣,我們的語言中對于字符串的處理就完善了。
到此,關于“JS正則表達式如何分組和引用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。