re 正則表達式 總結

正則:

  1. 匹配字符:
字符 功能
. 匹配任意一個字符
[ ] 匹配[]中列舉的字符
\d 匹配數字0-9
\D 匹配非數字,不是數字的
\s 匹配空白,空格和tab鍵
\S 匹配非空白
\w 匹配單詞字符,a-z, A-Z, 0-9
\W 匹配非單詞字符
  1. \ 符號轉義:

在匹配模式中經常用到 \ 符號轉義,爲了不被 \ 造成困擾,在匹配模式字符串前加上 r 代表原始字符串,

p = r’\d+.\d+.\d+.\d+’

  1. 匹配數量(次數):
字符 功能
* 匹配前一個字符0次或者多次
+ 匹配前一個字符1次或多次
? 匹配前一個字符0次或1次
{m} 匹配前一個字符m次
{m, n} 匹配前一個字符m到n次
{m,} 匹配前一個字符至少m次,或者大於m次
  1. 匹配的邊界:
字符 功能
^ 匹配字符串的開頭
$ 匹配字符串的結尾
\b 匹配一個單詞的邊界
\B 匹配非單詞的邊界
  1. 匹配分組
字符 功能
匹配左右任意一個表達式
(ab) 將括號中字符作爲一個分組匹配
\num 引用分組num匹配到的字符串
(?p<name>) 分組起別名
(?P=name) 引用別名爲name分組匹配到的字符串
  1. re.match和re.search(返回的都是re.Match匹配對象,用group取值)

re.match只匹配字符串的開頭,開頭不匹配則匹配失敗返回None
re.search匹配整個字符串,沒有匹配到則返回None
使用group得到匹配對象的結果:
group(0)取到所有結果(所有分組結果都在一個字符串中),是個字符串
group(1)取到第一個分組的結果,是個字符串

  1. compile函數
    用來編譯正則表達式,生成一個正則表達式對象,供match和search兩個函數使用

p = r’\d+.\d+.\d+.\d+’
re.complie§

  1. findall函數
    在字符串中找到正則表達式所匹配的所有子串,並返回一個列表,沒有匹配返回一個空列表
    注意: match和saerch只匹配一次,findall匹配所有

  2. split函數

split按照能夠匹配的子串將字符串分割後返回列表

常見示例:

常見的re匹配語句

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