其他教程

其他教程

Products

当前位置:首页 > 其他教程 >

正则表达式匹配指定内容

GG网络技术分享 2025-03-18 16:14 10


问题描述:

假如有一串字符串s= 'ab123ab2343ab8743ab34678ab2345671',每个“ab”后面的数字个数及大小没有规律,需要匹配到如下结果:

ab123,ab2343,ab8743,ab34678,ab2345671,有没有啥比较好的办法吗?

网友观点:

# -*- coding: UTF-8 -*-
import re
 
s = 'ab12c3ab2df34g3ab87qwe43ab3we467c8ab234we5671'
it = re.finditer(r"(ab)((?!ab).)*",s) 
for match in it: 
    print (match.group() )

正则表达式ab[0-9]*

老哥 假如是这样的呢“ab12c3ab2df34g3ab87qwe43ab3we467c8ab234we5671” 就是ab后面的一串字符里面既有数字也有字母 想匹配出这样的结果: ab12c3   ab2df34g3   ab87qwe43   ab3we467c8   ab234we5671

(ab)((?!ab).)*

你这个我试了 老哥 只能匹配到ab后面的一位字符呀

s = \'ab12c3ab2df34g3ab87qwe43ab3we467c8ab234we5671\'

mo = re.findall(r\'(ab)((?!ab).)*\',s)

print(mo)

结果如下:

[(\'ab\', \'3\'), (\'ab\', \'3\'), (\'ab\', \'3\'), (\'ab\', \'8\'), (\'ab\', \'1\')]

 

感谢老哥 我去了解下finditer()相关知识

如何根据正则表达式随机生成匹配的内容?

直接根据正则语句构造就可以了,不过语句中或的数量不能太多。

标签:

提交需求或反馈

Demand feedback