正則:
- 匹配字符:
字符 | 功能 |
---|---|
. | 匹配任意一個字符 |
[ ] | 匹配[]中列舉的字符 |
\d | 匹配數字0-9 |
\D | 匹配非數字,不是數字的 |
\s | 匹配空白,空格和tab鍵 |
\S | 匹配非空白 |
\w | 匹配單詞字符,a-z, A-Z, 0-9 |
\W | 匹配非單詞字符 |
- \ 符號轉義:
在匹配模式中經常用到 \ 符號轉義,爲了不被 \ 造成困擾,在匹配模式字符串前加上 r 代表原始字符串,
p = r’\d+.\d+.\d+.\d+’
- 匹配數量(次數):
字符 | 功能 |
---|---|
* | 匹配前一個字符0次或者多次 |
+ | 匹配前一個字符1次或多次 |
? | 匹配前一個字符0次或1次 |
{m} | 匹配前一個字符m次 |
{m, n} | 匹配前一個字符m到n次 |
{m,} | 匹配前一個字符至少m次,或者大於m次 |
- 匹配的邊界:
字符 | 功能 |
---|---|
^ | 匹配字符串的開頭 |
$ | 匹配字符串的結尾 |
\b | 匹配一個單詞的邊界 |
\B | 匹配非單詞的邊界 |
- 匹配分組
字符 | 功能 |
---|---|
丨 | 匹配左右任意一個表達式 |
(ab) | 將括號中字符作爲一個分組匹配 |
\num | 引用分組num匹配到的字符串 |
(?p<name>) | 分組起別名 |
(?P=name) | 引用別名爲name分組匹配到的字符串 |
- re.match和re.search(返回的都是re.Match匹配對象,用group取值)
re.match只匹配字符串的開頭,開頭不匹配則匹配失敗返回None
re.search匹配整個字符串,沒有匹配到則返回None
使用group得到匹配對象的結果:
group(0)取到所有結果(所有分組結果都在一個字符串中),是個字符串
group(1)取到第一個分組的結果,是個字符串
- compile函數
用來編譯正則表達式,生成一個正則表達式對象,供match和search兩個函數使用
p = r’\d+.\d+.\d+.\d+’
re.complie§
-
findall函數
在字符串中找到正則表達式所匹配的所有子串,並返回一個列表,沒有匹配返回一個空列表
注意: match和saerch只匹配一次,findall匹配所有 -
split函數
split按照能夠匹配的子串將字符串分割後返回列表