说我有一个像这样的字符串
example = u"这是一段很蛋疼的中文"
我想用蛋
替换egg
,我该如何完成?
似乎example.replace()
没用。
我尝试使用正则表达式,使用re.match(u"蛋", "")
返回无。
我搜索了很多,似乎我应该使用类似.decode
的方法,但它仍然不起作用,即使example.replace(u"\u86CB", "egg")
也没用。
那么有办法处理汉字吗?
答案 0 :(得分:2)
您应该在Python3中获得如下输出。
>>> import re
>>> example = u"这是一段很蛋疼的中文"
>>> re.search(u'蛋',example)
<_sre.SRE_Match object; span=(5, 6), match='蛋'>
>>> example.replace('蛋','egg')
'这是一段很egg疼的中文'
>>> re.sub('蛋','egg',example)
'这是一段很egg疼的中文'
>>> example.replace(u"\u86CB", "egg")
'这是一段很egg疼的中文'
>>> re.match('.*蛋',example)
<_sre.SRE_Match object; span=(0, 6), match='这是一段很蛋'>
re.match
会尝试匹配开头的字符串,因此在您的情况下会返回None
。
答案 1 :(得分:1)
您可以在Python2
中执行以下操作:
编辑:使用unicode literals
添加具有编码规范的正确编码源文件将解决此问题。
#!/usr/local/bin/python
# -*- coding: utf-8 -*-
example = u"这是一段很蛋疼的中文"
print example.replace(u"这", u"egg")
# Within Python3
# print(example.replace("这", 'egg'))
输出:
egg是一段很蛋疼的中文