Python:在字符串中查找一系列汉字并应用函数


问题内容

我有一系列的文本,大部分是英文的,但是包含一些带有汉字的短语。这是两个示例:

s1 = "You say: 你好. I say: 再見"
s2 = "答案, my friend, 在風在吹"

我正在尝试查找每个中文块,应用一个函数来翻译文本(我已经有办法翻译),然后将翻译后的文本替换为字符串。所以输出将是这样的:

o1 = "You say: hello. I say: goodbye"
o2 = "The answer, my friend, is blowing in the wind"

通过执行以下操作,我可以轻松找到汉字:

utf_line = s1.decode('utf-8') 
re.findall(ur'[\u4e00-\u9fff]+',utf_line)

…但是最后我得到了所有汉字的列表,无法确定每个短语的开始和结束位置。


问题答案:

您总是可以re.sub()在python中使用匹配的正则表达式的就地替换 。

尝试这个:

print(re.sub(r'([\u4e00-\u9fff]+)', translate('\g<0>'), utf_line))