re.sub在python中无法正常工作

时间:2016-04-08 22:06:32

标签: python regex python-3.x unicode

我的问题听起来很愚蠢,但有些东西不适用于python 3.x和re.sub吗?因为这个简单的代码似乎是错误的,它不会在我的控制台上打印'(026)660 68 21'。有人能帮助我吗?

import re    
word = "Tél : (026) 660 68 21"
w = re.sub("Tél : ", "", word, count=1)
print(w)

1 个答案:

答案 0 :(得分:1)

我无法使用您问题中的代码重现该问题。

但是你所看到的可能会发生,例如,如果e aigu字符的形式不同:

>>> word = "Tél : (026) 660 68 21"
>>> substring = "Tél : "
>>> re.sub(substring, "", word, count=1)
'Tél : (026) 660 68 21'

修复:

>>> from unicodedata import normalize
>>> def n(str_, form='NFC'):
        return normalize(form, str_)
... 
>>> re.sub(n(substring), "", n(word), count=1)
'(026) 660 68 21'