我需要用波兰字符替换字符串。
我尝试了以下代码:
k = 'aąkkk cdkkk aą xskkk'
odp = re.sub('(?<!aą|cd)kkk', '***', k)
print (odp)
但不幸的是它会产生以下错误:
文件“/usr/lib/python2.7/re.py”,第244行,_compile引发错误,v#无效表达式
问题在于抛光字符,因为当我用'a'字符替换'''字符时,它可以正常工作:
k = 'aąkkk cdkkk aą xskkk'
odp = re.sub('(?<!aa|cd)kkk', '***', k)
print (odp)
答案是:aą*** cdkkk aą xs***
我尝试使用UNICODE但它仍然不起作用:
a = re.compile(ur'(?<!\u0061\u0105|\u0063\u0064)kkk', re.UNICODE)
a
k = u'aąkkk cdkkk aą xskkk'
odp = a.sub('***', k)
print (odp)
以上答案是:aÄ*** cdkkk aÄ xs***
我该如何解决这个问题?
答案 0 :(得分:1)
你想要的结果并不是很清楚。如果你想要'aą*** cdkkk aą xs***'
,那么你可以这样做:
>>> k = u'aąkkk cdkkk aą xskkk'
>>> re.sub(u'(?<!(aą|cd))kkk', '***', k, re.UNICODE)
'aąkkk cdkkk aą xs***'