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