python - 正则表达式 unicode 替换不起作用

标签 python regex unicode

我在 python 中有以下示例,但它不起作用:

>>> replace = re.compile(ur'најавени', flags=re.IGNORECASE)

>>> docText = replace.sub("најавени1",docText)

>>> print docText

трендафилов во мвр се Најавени нови смени поврзани со безбедноста и борбата против организираниот криминал

>>> docText = replace.sub(u"најавени1",docText)

>>> print docText

трендафилов во мвр се Најавени нови смени поврзани со безбедноста и борбата против организираниот криминал

>>> docText = replace.sub(u"најавени1",docText,re.IGNORECASE)

>>> print docText

трендафилов во мвр се Најавени нови смени поврзани со безбедноста и борбата против организираниот криминал

有什么提示吗?我只想替换文本中的字符串,它可以用英语工作,但不能用我的母语工作。

第二次尝试:

>>> docText = "трендафилов во мвр се Најавени нови смени поврзани со безбедноста и борбата против организираниот криминал"
>>> replace = re.compile(ur'Најавени', flags=re.IGNORECASE)
>>> docText = replace.sub(u"најавени1",docText,re.IGNORECASE)
>>> print docText
трендафилов во мвр се Најавени нови смени поврзани со безбедноста и борбата против организираниот криминал

最佳答案

您需要指定支持 unicode 的字符串和正则表达式,如下所示:

>>> import re
>>> replace = re.compile(ur'најавени', flags=re.IGNORECASE | re.UNICODE)
>>> docText = u"трендафилов во мвр се Најавени нови смени поврзани со безбедноста и борбата против организираниот криминал"
>>> print docText
трендафилов во мвр се Најавени нови смени поврзани со безбедноста и борбата против организираниот криминал
>>> docText = replace.sub(u"најавени1",docText)
>>> print docText
трендафилов во мвр се најавени1 нови смени поврзани со безбедноста и борбата против организираниот криминал

关于python - 正则表达式 unicode 替换不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10882027/

相关文章:

python - 如何在 matplotlib 动画期间删除轮廓线

python - 在 Python 中查找包含来自另一个列表的子字符串的列表元素

python - 使用标签传播/传播对具有多个标签的数据帧训练缺失标签

javascript - 电子邮件验证 Javascript RegExp

python - 如何优化groupby上的apply调用

python - 主题标签后跟常规文本

regex - 正则表达式匹配管道分隔字符串与管道转义

python - json.dump 中的 UnicodeDecodeError

r - R 图形中的阿拉伯语文本

java String.Format ("%02d")产生奇怪的 unicode 字符