正則表示式是個啥
用單個字串來更加方便的處理文字和資料的
字串
。
基本語法
一般字元:
“^” :^會匹配行或者字串的起始位置,有時還會匹配整個文件的起始位置。
“$”:$會匹配行或字串的結尾
“\d”: 匹配數字,
“\w”:匹配字母,數字,下劃線
“\s”:匹配空格
“。”:匹配除了換行符以外的任何字元
“[abc]”: 字元組 匹配包含括號內元素的字元
寫法很簡單改成大寫就行了,意思與原來的相反,這裡就不舉例子了。
“\W” 匹配任意不是字母,數字,下劃線 的字元
“\S” 匹配任意不是空白符的字元
“\D” 匹配任意非數字的字元
“\B” 匹配不是單詞開頭或結束的位置
“[^abc]” 匹配除了abc以外的任意字元
量詞:
“*” 離*號之前最近的那個元素重複零次或多次
“+” 離+號之前最近的那個元素重複一次或更多次
“?” 離?號之前最近的那個元素重複零次或一次
“{n}” 重複n次 例如從“aaaaaaaa” 匹配字串的a 並重復3次 正則:“a{3}” 結果就是取到3個a字元 “aaa”;
“{n,m}” 重複n到m次
例如正則 “a{3,4}” 將a重複匹配3次或者4次 所以供匹配的字元可以是三個“aaa”也可以是四個“aaaa” 正則都可以匹配到
“{n,}” 重複n次或更多次
與{n,m}不同之處就在於匹配的次數將沒有上限,但至少要重複n次 如 正則“a{3,}” a至少要重複3次
常用組合
“。*” 貪婪模式,就是整個字串中匹配範圍最大的匹配
“。*?” 找到符合條件的只匹配一次
“。+?” 注意與“。*?”區別,至少要重複1次
“{n,m}?” 重複n到m次,但儘可能少重複
如 “aaaaaaaa” 正則 “a{0,m}” 因為最少是0次所以取到結果為空
“{n,}?” 重複n次以上,但儘可能少重複
如 “aaaaaaa” 正則 “a{1,}” 最少是1次所以取到結果為 “a”
關係
?等價於匹配長度{0,1}
*等價於匹配長度{0,}
+等價於匹配長度{1,}
\d等價於[0-9]
\D等價於[^0-9]
\w等價於[A-Za-z_0-9]
\W等價於[^A-Za-z_0-9]
對此文章有任何問題,均可反饋至公眾號
我們會第一時間回覆
長按關注,程式設計不迷路哦