亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一個正則表達式問題!

一個正則表達式問題!

翻閱古今 2019-05-23 19:38:36
需要匹配以Chapter|Section開頭,以數字結尾的字符串如"Character1","Section132"但是只需要獲得尾部數字一開始用了這個正則/^(?
查看完整描述

2 回答

?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

?<=是斷言,斷言常和零寬這個詞一起出現,零寬斷言是在文本的某個位置判斷這個位置前面或者后面的字符滿足或者不滿足一些條件,具體是向前還是向后,滿足還是不滿足就和具體的斷言類型相關了。需要特別注意的是,斷言只是匹配一個位置,并不匹配一個具體的字符,所以是零寬。
/^(?<=(?:Chapter|Section)[t]*)d+$)/這個正則
首先匹配字符串的開始;
然后是一個斷言,這個斷言用于判斷該位置前面的字符滿足Chapter|Section)[t]*,注意此時匹配的位置并未發生改變,還是在字符串的開始;
然后匹配1到多個數字,注意開始匹配的位置還是在字符串的開始;
然后是字符串的結尾;
綜上,結合1,3和4,這個字符串就是由1到多個數字組成的;結合2,這個字符串開始的前面還需要匹配一些字符,這明顯是矛盾的,一個字符串的開始位置前面怎么還會有字符。所以這個正則什么也匹配不了。
/(?<=(?:Chapter|Section)[t]*)d+$)/去掉^以后,這個正則匹配成功的條件是在字符串中存在這樣一個位置,這個位置前面滿足Chapter|Section)[t]*,后面是1到多個數字,然后是字符串的結尾。
                            
查看完整回答
反對 回復 2019-05-23
  • 2 回答
  • 0 關注
  • 354 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號