普通字符包含大小寫字母、數字。在匹配普通字符時直接寫就好。好比"abc"匹配的就是」abc」python
用[ ]括起來,在[ ]中出現的內容會被匹配。例如:[abc]匹配a或b或c正則表達式
量詞中的*,+,{}都屬於貪婪匹配,就是儘量多的匹配到結果編輯器
str:hello world reg: h.* 此時匹配的結果:hello world
str:<div>hello</div> reg:<.*> 此時匹配的結果:<div>hello</div>
在使用.*後面若是加了"?"則是儘量的少匹配工具
str:hello world reg:h.*? 此時匹配的結果:h
str:<div>hello</div> reg:<.*?> 此時匹配的結果: <div> </div>
在正則中使用()進行分組。測試
例如要匹配一個相對複雜的身份證號。身份證號分紅兩種。老的身份證號有15位,而新的身份證號有18位。而且新身份證號結尾多是xspa
正則爲:
^([1-9]\d{16}[0-9x]|[1-9]\d{14})$
在正則表達式中,有不少有特殊意義的元字符,好比\n和\s等。若是要在正則中匹配正常的"\n"而不是換行就須要對"\"進行轉義。code
同理,在python中,對於\n,\s等也是有特殊意義的,若是要獲得"\n"也須要對"\"進行轉義,因此,若是須要匹配字符\n,在正則表達及python表達中須要寫成以下表格形式。blog
目標 | 正則 | python |
\n | \\n | \\\\n |
表1 "\n"轉義字符串
此時能夠利用r"\n"不轉義,即上表中python中正則表達可寫爲:r"\\n"get