match:
从开始的位置进行匹配。如果开始的位置没有匹配到,就直接失败了。示例代码如下:
text = "hello"
ret = re.match("h", text)
print(ret.group())
>> h
如果第一个字母不是h
,那么就会直接失败。示例代码如下:
text = "ahello"
ret = re.match("h", text)
print(ret.group())
>> AttributeError: 'NoneType' Object has no attribute 'group'
如果想要匹配换行的数据,那么传入一个flag=re.DOTALL
,就可以匹配换行符了。示例代码如下:
text = "abc\nabc"
ret = re.match("abc.*abc", text, re.DOTALL)
print(ret.group())
search:
在字符串中找满足条件的字符,如果找到了,就返回。示例代码如下:
text = "apple price $299"
ret = re.search("\d+", text)
print(ret.group())
>> 299
group:
在正则表达式中,可以对过滤到的字符串进行分组,分组使用圆括号的方式。
group
:和group(0)
是等价的,返回的是整个满足条件的字符串groups
:返回的是里面的子组。索引从1开始group(1)
:返回的是第一个子组,可以传入多个
示例代码如下:
text = "apple's price $99,orangs's price is $10"
ret = re.search(".*(\$\d+).*(\$\d+)", text)
print(ret.group())
>> apple's price $99,orangs's price is $10
print(ret.group(1))
>> $99
print(ret.group(1,2))
>> {'$99', '$10'}
print(ret.groups())
>> {'$99', '$10'}
findall:
找出所有满足条件的,返回的是一个列表
text = "apple price $99 orange peice $88"
ret = re.findall('\d+', text)
print(ret)
>> ['99', '88']
sub:
用来替换字符串。将匹配到的字符串替换为其他字符串。
text = "apple price $99 orange price $88"
ret = re.sub('\d+', '0', text)
print(ret)
>> apple price $0 orange peice $0