
文章插圖
正則表達(dá)式的組成元素?我們在編碼過程中無論前端或者后端或多或少會遇到正則表達(dá)式 , 她雖然不是必須的 , 但是錦上添花是一定的 , 所以我們有必要去掌握它的規(guī)則 , 讀懂他 , 了解他的語義 , 直至自己按規(guī)則寫出自己業(yè)務(wù)邏輯的正則表達(dá)式 , 比如我們在修改維護(hù)人家的代碼或者賞析源代碼看到類似的字符串
(<(w*)([^>]*)>)|((?<=>).*?(?=<))如果我們不了解語義規(guī)則 , 是不是心里慌得一P , 心里萬馬奔騰 , 啥玩意東西?我在哪里 , 我是誰 , 我不活了?
還是有必要花點(diǎn)時間來學(xué)習(xí)下 , 如果各位同學(xué)觀賞了上面的表達(dá)式產(chǎn)生和作者當(dāng)初一樣的情緒 , 恭喜你 , 兩種選擇 ,
一:自己面壁去
二:點(diǎn)個關(guān)注 , 給碼字的作者一點(diǎn)小小的鼓勵再拿個小板凳 , 仔細(xì)聽我詳細(xì)分解
言歸正傳 , 我們首先理解正則表達(dá)式的第一個基本概念:
元字符(metacharacter)當(dāng)一個字符在正則引擎中賦予特殊意義 , 而不再代表字符本身含義 , 比如.在ASCII碼中為46 , 在正則表達(dá)式語義環(huán)境中代表除開換行結(jié)束符之外任意字符 , 這句話究竟什么含義也?換句話說就是比如孫大圣的七十二變 , 根據(jù)具體的場景 , 他可以變成一只小小鳥 , 也可以變成一個漂亮小姐姐 , 或者其他任何東西 , 從引擎解析的角度可以假裝是我們要找的那個東西 , 到達(dá)我們想要搜索結(jié)果 , 和我們sql里面的%通配符一樣的語義
拆分正則表達(dá)式最小元字符組文本字符:
代表字符的本身含義 , 比如字符a代表ASCII 碼是97 , 他可以匹配你搜索字符串任何位置的a字符 , 相當(dāng)于精確匹配 。
匹配單個字符元字符:
從表達(dá)式構(gòu)建來說 , 一次匹配模式可以由一個元字符構(gòu)成 , 也可以由多個元字符構(gòu)造一組元字符完成一次匹配 , 那么讀懂正則表達(dá)式就必須要求你有一雙慧眼 , 可以把正則表達(dá)式拆分成一個(組)一個(組)的一次匹配模式 , 畫重點(diǎn):拆
[A-F0-9] 字符集合區(qū)間中任意一個字符都可以匹配 , 匹配一次消費(fèi)一個搜索字符串字符d 0到9任意一個數(shù)字D 匹配非數(shù)字[A-Za-z0-9] 匹配任意大小寫字母、數(shù)字w 和上面相同 , 匹配任意大小寫字母、數(shù)字 , 因?yàn)檎齽t語言規(guī)則最先是linux使用的 , 這種使用頻率過高 , 語法太繁瑣了 , 作者在引擎中又自定義了一個簡單的元字符來表述該語義 , 如果我們自己實(shí)現(xiàn)的正則引擎 , 你可以隨意發(fā)揮 , 用某個簡單的符號(元字符)代表某一類語義.一樣的道理 , 其他還有很多 , 看你用具體哪個語法那種正則引擎 , 大致差不多 , 剩下的就僅僅是使用熟悉的過程而且 So easy!轉(zhuǎn)義序列元字符 :
當(dāng)我們想用元字符本身的語義去匹配我們的搜索字符串的時候 , 用來讓正則引擎定義的元字符回歸本源 , 比如我們想匹配IP地址:(d{1,3}.){3}d{1,3} 其中當(dāng)正則引擎解析到.僅僅能匹配字符. , 而不是匹配除開換行結(jié)束符之外任意字符 。
位置匹配:
(零寬斷言)只匹配位置 , 不匹配字符 , 不consume字符 , 比如
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助:- 滅火器的保質(zhì)期是多久
- 讓plc一個程序重復(fù)循環(huán)的命令分享 C語言跳轉(zhuǎn)指令
- 蘋果手機(jī)免費(fèi)錄音軟件講解 iphone手機(jī)來電錄音的方法
- 日記 大家都用什么app,記錄日常的生活?
- 螞蟻莊園2月16日答案:冬奧會中被戲稱為躺贏的運(yùn)動項(xiàng)目是哪一個
- 雨天灑水車為什么還要灑水 灑水車灑水的作用是什么
- 電腦鍵盤功能的基礎(chǔ)知識 學(xué)電腦的步驟
- 十大降糖藥的排名 十種最佳的降糖藥
- 假性疣濕的癥狀 假疣和真疣的區(qū)別女性
- 湖南最窮的二個市在哪里 湖南為什么發(fā)達(dá)不起來
