普通字符:匹配與之相同的字符正則表達式
字母、數字、漢字、下劃線、沒有特殊定義的標點符號。spa
簡單的轉義字符:3d
\nblog |
換行符ci |
\t字符串 |
製表符table |
\\搜索 |
表明\自己引用 |
\^,\$,\.,\(,\),\{,\},\?,\+,\*,\|,\[,\]im |
匹配這些字符自己 |
標準字符集合:與多種字符相匹配的表達式
注:區分大小寫,大寫即相反的意思
\d |
任意一個數字,0-9之間 \D:任意一個不是數字的字符 |
\w |
任意一個字母或數字或下劃線,A~Z、a~z、0~九、_ |
\s |
空格、製表符、換行符等空白字符中任意一個 |
. |
小數點能夠匹配任意一個字符(除換行符),若要匹配包括「\n」在內,用「[\s\S]」 |
自定義字符集合:[ ]方括號匹配方式,匹配方括號中任意一個字符
[ab5@] |
匹配「a」/「b」/「5」/「@」,或的關係即取∪ |
[^abc] |
匹配「a」「b」「c」以外的任意字符 |
[f-k] |
匹配「f~k」 |
[^A-F0-3] |
匹配除「A~F」,「0~3」 |
注:正則表達式的特殊符號,被包含到中括號中,失去特殊意義(^,-除外)
標準字符集合,除小數點外,若是被包含於中括號,自定義字符集合將包含該集合。
[\d.\-+] 匹配:數字、小數點、+、-
量詞
{n} |
表達式重複n次 |
{m,n} |
表達式至少重複m次,最多重複n次 |
{m,} |
表達式至少重複m次,無{,n}形式 |
? |
匹配表達式0次或1次,至關於{0,1} |
+ |
表達式至少出現1次,至關於{1,} |
* |
表達式不出現或出現任意次,至關於{0,} |
注:匹配次數中的貪婪模式(匹配字符越多越好,是默認模式)
匹配次數中的非貪婪模式(匹配字符越少越好,修飾匹配次數的特殊符號後再加上一個「?」號)
字符邊界 零寬度(匹配不到字符)
匹配的不是字符而是位置,符合某種條件的位置
^ |
與字符串開始的地方匹配 |
$ |
與字符串結束的地方匹配 |
\b |
匹配一個單詞邊界 |
注: \b 匹配這樣一個位置:前面的字符和後面的字符不全是\w
^i: i的左側是一個字符串開始的地方
i$:i的右側是字符串結束的位置
匹配模式
選擇符和分組
反向引用(\nnn)
預搜索(零寬斷言/環式斷言)
匹配內容自己不計入匹配結果