- 使用正则表达式需要导入re模块,去匹配或者提取字符串
- 一、findall方法:找到所有匹配的子字符串,并且返回一个列表。
import re
str1 = "Hello World!"
print(re.findall('l', str1))
print(re.findall('ll', str1))
print(re.findall('lll', str1))
['l', 'l', 'l']
['ll']
[]
- 二、match方法:从起始位找到返回匹配对象,没有找到返回None
import re
str2 = "Hello World!"
print(re.match('l', str2))
print(re.match('h', str2))
print("找到返回对象:", re.match('H', str2))
print("找到返回位置:", re.match('H', str2).span())
print("找到返回字符串:", re.match('H', str2).group())
None
None
找到返回对象: <re.Match object; span=(0, 1), match='H'>
找到返回位置: (0, 1)
找到返回字符串: H
- 三、search方法:查找整个字符串,找到第一个时,就返回匹配对象,即使后面还有一致的,也不进行查找,没有找到则返回None
import re
str3 = "Hello World!"
print(re.search('h', str3))
print("找到返回对象:", re.search('l', str3))
print("找到返回位置:", re.search('l', str3).span())
print("找到返回字符串:", re.search('l', str3).group())
None
找到返回对象: <re.Match object; span=(2, 3), match='l'>
找到返回位置: (2, 3)
找到返回字符串: l
字符 | 描述 |
---|
. | 匹配任意一个字符,除了\n |
---|
[] | 匹配[]中列举的字符 |
---|
\d | 匹配数字,即0-9 |
---|
\D | 匹配非数字 |
---|
\s | 匹配空白,即空格、tab键 |
---|
\S | 匹配非空白 |
---|
\w | 匹配单词符,即a-z、A-Z、0-9、_(下划线) |
---|
\W | 匹配非单词符 |
---|
* | 匹配前一个字符出现0次或者无限次,即这个字符可以不出现(可有可无) |
---|
+ | 匹配前一个字符出现1次或者无限次,即这个字符至少出现1次 |
---|
? | 匹配前一个字符出现0次或者1次,即要么出现1次,要么不出现 |
---|
{m} | 匹配前一个字符出现m次 |
---|
{m,} | 匹配前一个字符至少出现m次 |
---|
{m,n} | 匹配前一个字符出现从m到n次 |
---|
^ | 匹配字符串开头 |
---|
$ | 匹配字符串结尾 |
---|
\b | 匹配一个单词的边界 |
---|
\ | 匹配左右任意一个表达式 |
---|
(ab) | 将括号中的字符ab作为一个分组 |
---|