關於正則表示式
學習資料來自:ofollow,noindex">https://deerchao.net/tutorials/regex/regex.htm
我們說的正則表示式到底是啥?_?
正則表示式,是用於描述 需要查詢的符合某些具有複雜規則 的字串的工具
元字元
元字元 | 意義 |
---|---|
. | 匹配除換行符以外的任意字元 |
* | 匹配零個或多個的字元 |
+ | 匹配一個或多個字元 |
\w | 匹配字母或數字或下劃線或漢字 |
\s | 匹配任意的空白符 |
\d | 匹配數字 |
\b | 匹配單詞的開始或結束 |
^ | 匹配字串的開始 |
$ | 匹配字串的結束 |
eg:
\ba\w*\b //匹配字幕a開頭的單詞(\ba),然後任意數量的字母數字下劃線或者漢字(\w*), 最後以單詞結束(\b) \d+ // 匹配一個或多個連續的數字 \b\w{6}\b // 匹配留個字元的單詞{6}->表示限定6個字元 ^\d{5,12}$ // 匹配5-12位的數字
字元重複
元字元 | 意義 |
---|---|
* | 重複零次或更多次 |
+ | 重複一次或更多次 |
? | 重複零次或一次 |
{n} | 重複n次 |
{n,} | 重複n次或更多次 |
{n,m} | 重複n到m次 |
字元類
若想要查詢數字、字母,則可以將需要查詢的字元列在方括號裡面:
[abcd] [a-z0-9A-Z_]
分歧條件
分枝條件指的是有幾種規則,如果滿足其中任意一種規則都應該當成匹配;
使用|
符號隔開。
eg:
\d{5}-\d{4}|\d{5}
分組
當想要重複多個字元的時候,可以使用小括號指定子表示式(即,分組)。
(\d{1,3}\.){3}\d{1,3} \\可以重複3個 \d{1,3}\.。
反義
查詢不屬於定義的字元類的字元。
元字元 | 意義 |
---|---|
\W | 匹配任意不是字母,數字,下劃線,漢字的字元 |
\S | 匹配任意不是空白符的字元 |
\D | 匹配任意非數字的字元 |
\B | 匹配不是單詞開頭或結束的位置 |
[^x] | 匹配除了x以外的任意字元 |
[^aeiou] | 匹配除了aeiou這幾個字母以外的任意字元 |
向後引用
使用小括號指定一個子表示式後,匹配這個子表示式的文字 ,可以再表示式或其他程式中作進一步的處理。預設情況下,每個分組會自動擁有一個組號。