前言:
總是寫不好正則表達式黄娘,時間長不用就有些忘記了峭状,故此在總結一篇文章以便日后查閱。
一逼争、常用的匹配規(guī)則總結表
模式 | 描述 |
---|---|
\w |
匹配字母數(shù)字及下劃線 |
\W |
匹配非字母數(shù)字及下劃線 |
\s |
匹配任意空白字符优床,等價于 [\t\n\r\f]. |
\S |
匹配任意非空字符 |
\d |
匹配任意數(shù)字,等價于 [0-9] |
\D |
匹配任意非數(shù)字 |
\A |
匹配字符串開始 |
\Z |
匹配字符串結束誓焦,如果是存在換行胆敞,只匹配到換行前的結束字符串 |
\z |
匹配字符串結束 |
\G |
匹配最后匹配完成的位置 |
\n |
匹配一個換行符 |
\t |
匹配一個制表符 |
^ |
匹配字符串的開頭 |
$ |
匹配字符串的末尾 |
. |
匹配任意字符,除了換行符 |
[...] |
用來表示一組字符杂伟,單獨列出:[amk] 匹配 'a'移层,'m' 或 'k' |
[^...] |
不在 [] 中的字符:[^abc]匹配除了 a,b,c 之外的字符。 |
* |
匹配 0 個或多個的表達式赫粥。 |
+ |
匹配 1 個或多個的表達式观话。 |
? |
匹配 0 個或 1 個由前面的正則表達式定義的片段,非貪婪方式 |
{n} |
精確匹配 n 個前面表達式越平。 |
{n, m} |
匹配 n 到 m 次由前面的正則表達式定義的片段频蛔,貪婪方式 |
a | b |
匹配 a 或 b |
( ) |
匹配括號內(nèi)的表達式,也表示一個組 |
相關具體應用例子秦叛,請見:Python-正則表達式
二晦溪、re庫中常用方法
函數(shù) | 描述 |
---|---|
re.match(pattern, string, flags=0) |
嘗試從字符串的起始位置匹配一個模式,如果不是起始位置匹配成功的話挣跋,match()就返回none |
re.search(pattern, string, flags=0) |
掃描整個字符串并返回第一個成功的匹配 |
re.sub(pattern, repl, string, count=0) |
用于替換字符串中的匹配項尼变,repl : 替換的字符串,也可為一個函數(shù) |
re.compile(pattern[, flags]) |
用于編譯正則表達式浆劲,生成一個正則表達式( Pattern )對象嫌术,供 match() 和 search() 這兩個函數(shù)使用 |
findall(string[, pos[, endpos]]) |
在字符串中找到正則表達式所匹配的所有子串,并返回一個列表牌借,如果沒有找到匹配的度气,則返回空列表 |
re.split(pattern, string[, maxsplit=0, flags=0]) |
能夠匹配的子串將字符串分割后返回列表 |
相關具體應用例子,請見:Python-正則表達式
三膨报、修飾符總結
修飾符 | 描述 |
---|---|
re.I |
使匹配對大小寫不敏感 |
re.L |
做本地化識別(locale-aware)匹配 |
re.M |
多行匹配磷籍,影響 ^ 和 $ |
re.S |
使 . 匹配包括換行在內(nèi)的所有字符 |
re.U |
根據(jù)Unicode字符集解析字符。這個標志影響 \w, \W, \b, \B. |
re.X |
該標志通過給予你更靈活的格式以便你將正則表達式寫得更易于理解现柠。 |
取值可以使用按位或運算符'|'表示同時生效院领,比如re.I | re.M。
四够吩、常用正則表達式
1比然、匹配email地址:
[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?
2、匹配網(wǎng)址URL:
[a-zA-z]+://[^\s]*
3周循、匹配18位身份證號:
^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$
4强法、匹配年月日格式:
([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))
5万俗、匹配整數(shù):
^-?[1-9]\d*$
6、匹配正整數(shù):
^[1-9]\d*$
7饮怯、匹配負整數(shù):
^-[1-9]\d*$
8闰歪、匹配空白行:
\n\s*\r
以上,對你有幫助的話就點贊??吧~