高階正則用法 預查

2021-10-02 02:48:04 字數 761 閱讀 6194

工欲善其事必先利其器,正規表示式無疑是乙個非常強大的工具,從txt,excel,word還有眾多編輯器,還有各種開發語言都有它的蹤影.

下面就說下正規表示式較為高階的預查用法

包含4個關鍵字元順序:?<=!   (=!只能同時出現乙個)

? 預查校驗的標誌

! 否定    = 肯定

()表示捕獲分組,()會把每個分組裡的匹配的值儲存起來,使用$n(n是乙個數字,表示第n個捕獲組的內容)

(?)表示非捕獲分組,和捕獲分組唯一的區別在於,非捕獲分組匹配的值不會儲存起來

如果只是校驗正規表示式裡的預查 ,檢查前面後者後面的字串是否符預查pattern  

(?=ex2)ex1     校驗exp1是否符合ex2

ex1(?<=ex2)   校驗exp1是否符合ex2

(?!ex2) ex1     校驗exp1是否不符合ex2

ex1(?eg:

(?![0-9]+$) **該位置後面不全是數字

(?!***x) 是正規表示式的負向零寬斷言一種形式,標識預該位置後不是***x字元。

eg2:

河北人".replace(/(?<=中國)人/, "rr") // 匹配河北人中的人,將其替換為rr,結果為 河北rr

"北京人".replace(/(?<=河北)人/, "rr") // 結果為 北京人,因為人前面不是河北,所以無法匹配到

scanf n , str 正則用法

預設情況下 scanf 一讀入空格或者換行字元就結束讀入 n 表示一讀入換行字元就結束讀入。這個是scanf的正則用法。n 表示一讀入逗號或者換行字元就結束讀入。n 讀出資料後,逗號或者換行字元還在緩衝區內,如果後期以讀取字串的形式讀出資料,會直接跳過逗號或者換行字元 也可以用getchar讀出逗號...

Python高階正則

1 importre2 3 p re.compile 0 9 45 m p.match 13435asadb 67print m.group 一 上面的第二行和第三行也可以合併成一行來寫 m p.match 0 9 13435asadb 效果是一樣的,區別在於第一種方式是提前對要匹配的格式進行編譯,...

js高階正則解析

1.var reg var reg 前者代表任意乙個字元而後者代表這個字串中得有乙個.2.的使用 如果單獨的乙個字元後面帶?var reg d?n?代表乙個或0個這個字元的出現 如果是量詞 和 後面帶?取消正則的貪婪性 在捕獲階段 var reg d var st ahfuoi6565232 con...