其他分享
首页 > 其他分享> > 5正则表达式

5正则表达式

作者:互联网

正则表达式本身是一个字符串,分别有两类:普通字符和特殊字符
一.常见语法
1.普通字符:无含义的字符,可直接匹配
2.特殊字符
例如: . 匹配除换行符外所有字符 用法 .字符

目录

1.未使用正则表达式的例子

content = '''
啊啊啊啊12.5万/月啊啊啊啊
啊啊啊啊666万/每月啊啊啊啊
啊啊啊啊55.9万/月啊啊啊啊
'''
lines = content.splitlines()
for line in lines:
    pos2 = line.find('万/月')
    if pos2 < 0:
        pos2 = line.find('万/每月')
        if pos2 < 0:
            continue
# if语句内部缩进到下一个语句块再写一个if语句可嵌套
idx = pos2 - 1
while line[idx].isdigit() or line[idx] == '.':
    idx -= 1
pos1 = idx + 1
print(line[pos1:pos2])

2.基本格式

content = '''
啊啊啊啊12.5万/月啊啊啊啊
啊啊啊啊666万/每月啊啊啊啊
啊啊啊啊55.9万/月啊啊啊啊
'''
# 导入文本

import re  # 导入正则表达式模块(库)

p = re.compile(r'.万')  # r表示防止正则表达式里的特殊字符转意
print(type(p))
for one in p.findall(content):  # findall()找到所有符合条件的文本
    print(type(one))
    print(one)

3.星号的使用

# 字符.*代表持续到.后这一排所有的字符(包括.后面没有字符,0次)(直到行尾)
# 几个字符*代表将这几个字符和最后一个字符重复选中(匹配)多次
coutent = """
橘子,是橙色的
树叶,是绿色色色色色的
柚子,是黄色的
苹果,是绿色的
梨子,
"""
import re

p = re.compile(r',.*')
for one in p.findall(coutent):
    print(one)

p = re.compile(r'绿色*')
for one in p.findall(coutent):
    print(one)

4.加号的使用

import re

p = re.compile(r',.+')
for one in p.findall(coutent):
    print(one)
# 结果和,.#不一样,是不包含没有字符的梨子的
# p = re.compile(r',.*')
# for one1 in p.findall(coutent):
#     print(one1)

5.花括号_选择匹配次数

# 固定次数匹配
import re

# coutext = """
# 红彤彤,绿油油,黑乎乎,绿油油油油油油油油油油油油油油油
# """
# p = re.compile(r'绿油{3,4}')  # 最小匹配次数,最大匹配次数
# for one in p.findall(coutext):
#     print(one)

coutext = """
张小明, 13566665555, 20岁
"""
p = re.compile('\d{11}')  # 十进制数\d
for one in p.findall(coutext):
    print(one)

标签:字符,正则表达式,compile,re,啊啊啊,print,findall
来源: https://blog.csdn.net/qq_62491705/article/details/121621817