正則 - re

  • 字符:
.  匹配除換行符以外的任意字符
\  轉義字符,使後一個字符改變原來的意思
\w 匹配字母或數字或下劃線或漢字
\s 匹配任意的空白符
\d 匹配數字
\b 匹配單詞的開始或結束
^  匹配字符串的開始
$  匹配字符串的結束

  • 次數:
* 重複零次或更多次
+ 重複一次或更多次
? 重複零次或一次
{n} 重複n次
{n,} 重複n次或更多次
{n,m} 重複n到m次
[]  字符集
()  分組
|

match

- match,從起始位置開始匹配,匹配成功返回一個對象,未匹配成功返回None
match(pattern, string, flags=0)
 # pattern: 正則模型
 # string : 要匹配的字符串
 # falgs  : 匹配模式
 -  flags有:
	re.S(DOTALL) 		 -  使.匹配包括換行在內的所有字符
	re.I(IGNORECASE)	 -  使匹配對大小寫不敏感
	re.L(LOCALE) 		 - 	做本地化識別(locale-aware)匹配,法語等
	re.M(MULTILINE)		 -  多行匹配,影響^和$
	re.X(VERBOSE)		 -  該標誌通過給予更靈活的格式以便將正則表達式寫得更易於理解
	re.U				 -  根據Unicode字符集解析字符,這個標誌影響\w,\W,\b,\B

origin = "hello world Perform case-insensitive matching66."

r = re.match("h\w+", origin)
print(r.group())     # 獲取匹配到的所有結果
print(r.groups())    # 獲取模型中匹配到的分組結果
print(r.groupdict()) # 獲取模型中匹配到的分組結果
>>> hello
>>> ()
>>> {}


  • search
- search,瀏覽整個字符串去匹配第一個,未匹配成功返回None
  • re.match 與 re.search 的區別:
re.match   只匹配字符串的開始,如果字符串開始不符合正則表達式,則匹配失敗,函數返回None;
re.search  匹配整個字符串,直到找到一個匹配。
  • findall
- re.findall遍歷匹配,可以獲取字符串中所有匹配的字符串,返回一個列表。
r = re.findall('h(\w+)', origin)
print(r)
>>> ['ello', 'ing9999']

常用的20個表達式 :點我

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章