匹配單個字符
在上一小節中,了解到通過re模塊能夠完成使用正則表達式來匹配字符串
本小節,將要講解正則表達式的單字符匹配
字符 | 功能 |
---|---|
. | 匹配任意1個字符(除了\n) |
[ ] | 匹配[ ]中列舉的字符 |
\d | 匹配數字,即0-9 |
\D | 匹配非數字,即不是數字 |
\s | 匹配空白,即 空格,tab鍵 |
\S | 匹配非空白 |
\w | 匹配單詞字符,即a-z、A-Z、0-9、_ |
\W | 匹配非單詞字符 |
示例1: .
#coding=utf-8 import re ret = re.match(".","M") print(ret.group()) ret = re.match("t.o","too") print(ret.group()) ret = re.match("t.o","two") print(ret.group())
運行結果:
M
too
two
示例2:[ ]
#coding=utf-8 import re # 如果hello的首字符小寫,那么正則表達式需要小寫的h ret = re.match("h","hello Python") print(ret.group()) # 如果hello的首字符大寫,那么正則表達式需要大寫的H ret = re.match("H","Hello Python") print(ret.group()) # 大小寫h都可以的情況 ret = re.match("[hH]","hello Python") print(ret.group()) ret = re.match("[hH]","Hello Python") print(ret.group()) ret = re.match("[hH]ello Python","Hello Python") print(ret.group()) # 匹配0到9第一種寫法 ret = re.match("[0123456789]Hello Python","7Hello Python") print(ret.group()) # 匹配0到9第二種寫法 ret = re.match("[0-9]Hello Python","7Hello Python") print(ret.group()) ret = re.match("[0-35-9]Hello Python","7Hello Python") print(ret.group()) # 下面這個正則不能夠匹配到數字4,因此ret為None ret = re.match("[0-35-9]Hello Python","4Hello Python") # print(ret.group())
運行結果:
h
H
h
H
Hello Python
7Hello Python 7Hello Python 7Hello Python
示例3:\d
#coding=utf-8 import re # 普通的匹配方式 ret = re.match("嫦娥1號","嫦娥1號發射成功") print(ret.group()) ret = re.match("嫦娥2號","嫦娥2號發射成功") print(ret.group()) ret = re.match("嫦娥3號","嫦娥3號發射成功") print(ret.group()) # 使用\d進行匹配 ret = re.match("嫦娥\d號","嫦娥1號發射成功") print(ret.group()) ret = re.match("嫦娥\d號","嫦娥2號發射成功") print(ret.group()) ret = re.match("嫦娥\d號","嫦娥3號發射成功") print(ret.group())
運行結果:
嫦娥1號 嫦娥2號 嫦娥3號 嫦娥1號 嫦娥2號 嫦娥3號