正規表示式 用法總結 part1

2021-07-24 05:08:03 字數 2425 閱讀 8668

搜尋 and 替換

匹配文字中的某字元(類似於word等工具的查詢功能)

. – 可以匹配任何單字元,包括字母,數字,標點甚至是.本身

.. – 匹配兩個任意字元

注:若想匹配.本身,則需要對其進行轉義,即\.

[abc]*– 表示匹配所有以a或b或c為開頭的文字

[rr]eg[ee]x– 表示匹配 regex, regex, regex, regex

[a-z]*– 表示匹配所有以英文小寫字母(a-z)為開頭的文字

[a-za-z0-9]*– 表示匹配所有以英文本母和數字為開頭的文字

[^a-z]*– 表示匹配所有不以英文小寫字母(a-z)為開頭的文字

array\[0\]– 匹配文字array[0],若不轉義,則匹配array0

[\b]– 回退乙個字元(backspace),注意要加\b單獨使用另有含義

\f– 換頁符

\n– 換行符aababa

\r– 回車符(enter)

\t– 水平製表符(tab)

\v– 垂直製表符

\d– 匹配任一數字,相當於[0-9]

\d– 匹配任一非數字,相當於[^0-9]

\w– 匹配任一字母數字下劃線,相當於[a-za-z0-9_]

\w– 匹配任一非字母數字下劃線字元,相當於[^a-za-z0-9_]

\s– 匹配任一空白字元,相當於[\f\r\n\t\v]

\s– 匹配任一非空白字元,相當於[^\f\r\n\t\v]

\x0a– 匹配十六進製制值,0x0a = 10 = ascii(\n),\x+十六進製制,相當於\n

\011– 匹配八進位制值,011 = 9 = ascii(\t),\0+八進位制,相當於\t

\cz– 匹配控制字元ctrl + z,實際使用中很少見

要想匹配同一字元(或者字元集合)的多次重複,只需要簡單的在其後加上字尾+即可。

+匹配乙個或多個字元(至少乙個,不匹配零個字元的情況),若想匹配零個的情況,可使用*(零個或多個任意字元),或者?(若有則,匹配乙個任意字元,否則不匹配)

a+– 匹配乙個以上重複的a,比如aaa

[ab]+– 匹配乙個以上重複的a或者b,比如aababa

[ab]*– 匹配零個以上重複的a或者b

a?c– 匹配的字元是可選的,比如ac(?匹配了零個字元), abc, adc(?匹配了乙個字元)

[a-z]–設定重複次數,相當於[a-z][a-z][a-z]

[a-z]–為重複的次數設定區間,相當於[a-z]重複最少2次,最多4次

[a-z]–為重複的次數設定最大值,相當於最小值為0

[a-z]–為重複的次數設定最小值,相當於最大值為正無窮

+,*,匹配任意字元時,可能會過度的匹配(貪婪型),在其末尾加上?,使其工作時盡可能少的匹配字元(懶惰型)

text:

text1

and text2

– 貪婪型,將匹配text1

and text2

– 懶惰型,將匹配text1

text2

正規表示式用法總結

首先看乙個正規表示式的小demo 匹配郵箱,前面只能出現數字,英文本母,橫線,下劃線和點,前乙個字元不能是點,開頭不能是橫線和點。string email a za z0 9 a za z0 9 a za z0 9 0 9 0 9 0 9 a za z0 9 a za z 0 9 boolean f...

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式的 用法總結

有無量詞 問號可以表示重複前面內容的0次或一次,也就是要麼不出現,要麼出現一次。不加問號表示貪婪匹配 在滿足匹配時,匹配盡可能長的字串,預設情況下,採用貪婪匹配 1 2 3 string pattern1 a.c greedy match regex regex newregex pattern1 ...