我试图从一个字符串中删除所有非字符和跟在同一个字符后面的所有字符。在
示例输入“abbbbccccd EF ZZZU”应该变成 “ABCDDEFZU”。尝试在filter2函数中捕获 两个字母对,这样我可以比较这两个字母。 但我只匹配真正匹配的字母,不匹配后面的字母。在
#!/usr/bin/python
# coding: latin-1
import re
testfield = 'ABBBbbcCCCD EF ZZZU'
def filter1(matchobj):
return ''
def filter2(matchobj):
print('MATCH:' + matchobj.group(0))
return matchobj.group(0)
print(testfield)
testfield2 = re.sub('[^A-Z0-9]', filter1, testfield, flags=re.IGNORECASE)
print(testfield2)
testfield2 = re.sub('[A-Z0-9](?=[A-Z0-9])', filter2, testfield2, flags=re.IGNORECASE)
如何将两个字母都传递给filter2函数,但仍然找到所有可能的匹配项? 打印(测试字段2)
你应该原始你的正则表达式模式。第二步(假设您的意思是
ABCDEFZU
作为最终结果),使用backreferences和lambda函数返回匹配部分的大写字母,您可以执行以下操作:ideone demo
相关问题 更多 >
编程相关推荐