0
点赞
收藏
分享

微信扫一扫

python正则表达式的使用

小磊z 2022-02-07 阅读 174

正则表达式在很多编程语言里面都有出现,在javascript、sql、python……他们中的正则表达式基本大同小异,他的功能说直白一点就是对字符串进行筛选过滤。在python中正则表达式是封装在re模块中的。

re.match函数

语法 : re.match(正则表达式, 进行匹配的字符串, 标志位(可选))

# 实例
import re

li = [
    '13688989897@qq.com','  13688989897','dfg13688989897'
]

for i in li:
    split = re.match('136',i)
    if split:
        print('{0} 截取位置:{1}'.format(i,split.span()))

运行结果:

re.search函数

语法 : re.search(正则表达式, 进行匹配的字符串, 标志位(可选))

# 实例
import re

li = [
    '13688989897@qq.com','  13688989897','dfg13688989897'
]

for i in li:
    split = re.search('136',i)
    if split:
        print('{0} 截取位置:{1}'.format(i,split.span()))

运行结果:

# 实例
import re

strint = 'My major is computer'

s_obj = re.search( r'(.*) major (.*?) .*', strint, re.M|re.I)

print('group:',s_obj.group())
print('group1:',s_obj.group(1))
print('group2:',s_obj.group(2))

运行结果:

检索和替换 

语法: re.sub(正则表达式, 要替换的字符串, 字符串, 替换最大数量(默认所有), 匹配模式)

# 实例
import re

phone = "136-232-666 # 这是一个电话号码"

# 删除注释
num = re.sub(r'#.*$', "", phone)
print("电话号码 : ", num)

# 移除非数字的内容
num = re.sub(r'\D', "", phone)
print("电话号码 : ", num)

运行结果:

 re.findall

语法 : re.findall(正则表达式, 进行匹配的字符串, 标志位(可选))

# 实例
import re

li1 = re.findall(r'\d+', 'number 123 number2 456')

pattern = re.compile(r'\d+')  # 查找数字
li2 = pattern.findall('number 123 google 456')
li3 = pattern.findall('abio1c2b66jklj125', 0, 10)

print(li1)
print(li2)
print(li3)

运行结果:

修饰符

正则表达式实例:

 打卡46天,对python大数据感兴趣的朋友欢迎一起讨论、交流,请多指教!

举报

相关推荐

0 条评论