一、re模块

re模块

查找相关的方法:

  • match:查找字符串,返回的结果是一个re.Match对象

    • search和match方法的执行结果是一个Match类型的对象
  • search:查找字符串,返回的结果是一个re.Match对象

    • search和match方法的执行结果是一个Match类型的对象

match和search共同点:

  1. 只对字符串查询匹配一次,对于一个字符串中多个匹配的字符,按从左至右且只匹配一次的规则
  2. 返回值都是re.Match类型的对象

match和search不同点:

  1. match是从开头第一个字符串进行匹配,一旦匹配失败,就会返回None
  2. search是在整个字符串中进行匹配,对于单个字符串匹配失败,会查询下一个字符串,直到匹配成功,如果失败则返回None
  • finditer:finditer可以查找到所有的匹配数据,存放到一个可迭代对象中,未匹配则输出None
  • findall:findall将所有匹配的数据放入到一个列表中,未匹配则输出None
  • fullmatch:fullmatch匹配整个字符串,字符串需要完全满足正则匹配规则,未匹配则输出None

注意:

  1. Python中使用正则表达式匹配一个\需要使用\\\\来代表,或者使用r'\\'来代表

match()

  • match是从开头第一个字符串进行匹配,一旦匹配失败,就会返回None
  • search和match方法的执行结果是一个Match类型的对象
  1. 语法:
import re
re.match('参数1','参数2')

第一个参数就是正则匹配规则
第二个参数表示匹配的字符串
  1. 案例:
import re

m = re.match(r'hel','hello world good morning')
print(m)
#<re.Match object; span=(0, 3), match='hel'>

m3 = re.match(r'good','hello world good morning')
print(m)
#None

search()

  • search是在整个字符串中进行匹配,对于单个字符串匹配失败,会查询下一个字符串,直到单个匹配成功,如果失败则返回None
  • search和match方法的执行结果是一个Match类型的对象
  1. 语法:
import re
re.search('参数1','参数2','参数3')
第一个参数就是正则匹配规则
第二个参数表示匹配的字符串
第三个参数表示正则修饰符
  1. 案例:
import re
x = 'hello\\nworld'	#输出结果为:hello\nworld
#在正则表达式中,想要匹配一个 \ 需要使用 \\\\

m = re.search('\\\\',x)
print(m)
#<re.Match object; span=(5, 6), match='\\'>
span:被匹配的字符所在字符串中的下标,包含5不包含6
match:输出匹配的结果,在python中需要使用 \\ 表示 \

m2 = re.search(r'good','hello world good morning')
print(m2)
#<re.Match object; span=(12, 16), match='good'>

finditer()

  • finditer返回的是一个可迭代对象,需要使用next()方法来输出该可迭代对象中的值
  • finditer可以查找到所有的匹配数据,存放到一个可迭代对象中,未匹配则输出None
  1. 语法:
import re
re.finditer('参数1','参数2')
第一个参数就是正则匹配规则
第二个参数表示匹配的字符串
  1. 案例
import re
print(re.finditer(r'x','xk2adsxkdwadawx'))
#<callable_iterator object at 0x000002210FA50970>

print(next(x))
print(next(x))
print(next(x))
'''
<re.Match object; span=(0, 1), match='x'>
<re.Match object; span=(6, 7), match='x'>
<re.Match object; span=(14, 15), match='x'>
'''

findall()

findall将所有匹配的数据放入到一个列表中,未匹配则输出None

  1. 语法:
import re
re.findall('参数1','参数2')
第一个参数就是正则匹配规则
第二个参数表示匹配的字符串
  1. 案例:
import re
print(re.findall(r'x','xk2adsxkdwadawx'))
#['x', 'x', 'x']

fullmatch()

fullmatch匹配整个字符串,字符串需要完全满足正则匹配规则,未匹配则输出None

  1. 语法:
import re
re.fullmatch(''参数1','参数2'')
第一个参数就是正则匹配规则
第二个参数表示匹配的字符串
  1. 案例:
import re
print(re.fullmatch(r'hello world','hello world'))
#<re.Match object; span=(0, 11), match='hello world'>
posted @ 2021-06-01 15:59  zzwYYYYYY  阅读(75)  评论(0)    收藏  举报