小编use*_*061的帖子

Python中的正则表达式和Unicode:sub和findall之间的区别

我在尝试找出Python(2.7)脚本中的错误时遇到了困难.我在识别特殊字符时使用sub和findall有所不同.

这是代码:

>>> re.sub(ur"[^-' ().,\w]+", '' , u'Castañeda', re.UNICODE)
u'Castaeda'
>>> re.findall(ur"[^-' ().,\w]+", u'Castañeda', re.UNICODE)
[]
Run Code Online (Sandbox Code Playgroud)

当我使用findall时,它正确地将ñ视为字母字符,但是当我使用sub时它会替换它 - 将其视为非字母字符.

我已经能够使用findall和string.replace获得正确的功能,但这似乎是一个糟糕的解决方案.另外,我想使用re.split,我遇到与re.sub相同的问题.

在此先感谢您的帮助.

python regex unicode

5
推荐指数
1
解决办法
3972
查看次数

标签 统计

python ×1

regex ×1

unicode ×1