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:

在正则表达式中,可以对过滤到的字符串进行分组,分组使用圆括号的方式。

  1. group:和group(0)是等价的,返回的是整个满足条件的字符串
  2. groups:返回的是里面的子组。索引从1开始
  3. 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
最后修改:2019 年 01 月 17 日 04 : 51 PM