平淡
正則表達(dá)式是一串描述文本規(guī)則的代碼。對(duì)于一些比較復(fù)雜的代碼,我們?cè)跁?shū)寫或者給新手們講解時(shí)需要花費(fèi)大量的時(shí)間去解釋,現(xiàn)在借助Regexl01.com的在線服務(wù),無(wú)論多么復(fù)雜的表達(dá)式都可以實(shí)現(xiàn)“在線翻譯”。
在瀏覽器中打開(kāi)https://regex101.com,按提示先選擇對(duì)應(yīng)的編程語(yǔ)言,然后在上方的文本框中輸入正則表達(dá)式,比如勾選Python語(yǔ)法,輸入“cfan@cfan\.com\.cn”這個(gè)正則表達(dá)式,可以看到網(wǎng)站會(huì)自動(dòng)識(shí)別語(yǔ)法中的“轉(zhuǎn)義符(\)”,在右側(cè)窗格中可以看到該語(yǔ)法的解釋,這段語(yǔ)法的意思是提取指定字符串中的指定字符“cfan@cfan.com.cn”(圖2)。
在下方的“Test string”中可以輸入字符串進(jìn)行測(cè)試,比如輸入“fjkgsdggcfan@cfan.com.cnkfdsjupesjgsr“,就可以看到符合要求的字符被高亮顯示,這表示我們輸入的正則表達(dá)式是沒(méi)有錯(cuò)誤的(圖3)。
如果輸入錯(cuò)誤語(yǔ)法,那么錯(cuò)誤部分會(huì)被高亮紅色顯示,方便我們快速找到錯(cuò)誤。我們還可以點(diǎn)擊其他語(yǔ)言,看看在其他語(yǔ)言下的語(yǔ)法代碼是怎樣的(圖4)。
上述網(wǎng)站都是使用英文方式解釋代碼的,對(duì)于很多新手來(lái)說(shuō),還可以使用https://tool.lu/regex提供的中文在線工具進(jìn)行測(cè)試。打開(kāi)上述網(wǎng)站,選擇需要的中文正則表達(dá)式,代碼會(huì)自動(dòng)在代碼框中顯示,當(dāng)我們?cè)谙路降奈谋究蛑休斎霚y(cè)試字符串時(shí),符合正則表達(dá)式的字符就會(huì)被高亮標(biāo)注(圖5)。
對(duì)于測(cè)試沒(méi)有錯(cuò)誤的正則表達(dá)式,點(diǎn)擊“生成程序代碼”,在彈出的窗口中將直接生成JS、PHP等常見(jiàn)的代碼,這些代碼可以直接部署到網(wǎng)站中使用(圖6)。
對(duì)于比較復(fù)雜的正則表達(dá)式語(yǔ)法,我們構(gòu)造和解讀起來(lái)都比較不便。Debuggex.com則將代碼使用可視化的方式進(jìn)行分解,方便我們對(duì)語(yǔ)法進(jìn)行解讀。
打開(kāi)上述網(wǎng)站后,在代碼框輸入正則表達(dá)式語(yǔ)法,比如輸入“\w[-\w.+]“@([A—Za—z0—9”A—Za—z0—9]+\.)+[A—Za—z]{2,14)”(匹配郵箱語(yǔ)法),可以看到網(wǎng)站會(huì)將其分解為三部分,當(dāng)我們?cè)谧址谋究蛑休斎敕系奈谋緯r(shí),會(huì)自動(dòng)被標(biāo)記為高亮顯示。選中測(cè)試文本還可以看到其對(duì)應(yīng)的代碼位置,這樣通過(guò)可視化的分段解讀,讓我們更方便地了解正則表達(dá)式的,語(yǔ)法(圖7)。
上面我們了解了關(guān)于正則表達(dá)式語(yǔ)法的知識(shí),其實(shí)很多正則語(yǔ)法都可以應(yīng)用在我們常見(jiàn)的軟件中。比如在整理Word文檔時(shí),如果需要把“HT#”這種格式文本替換成“${HT)”,那么我們可以先將查找規(guī)則定為“([A—Z]{2})(#)”,替換規(guī)則定為“${\1}”,先在上述網(wǎng)站測(cè)試,確認(rèn)可以選擇到符合條件的字符后,在Word查找和替換中輸入上述正則表達(dá)式,就可以實(shí)現(xiàn)替換了(圖8)。