使用unicode替换特殊字符

2024-09-24 22:18:16 发布

您现在位置:Python中文网/ 问答频道 /正文

如何根据德语拼写,将双引号替换为风格正确的引号(“U+201e”或“U+201c”)

例如:

zitat=“涂尔干是”塔特贝斯特学院和韦尼格尔学院[…]学院学院”

我试过这个密码

import re
zitatnew = re.sub(r'"', r'[u+201e]', zitat)
print(zitatnew)

Laut Durkheim ist ein [u+201e]soziologischer Tatbestand jede mehr oder weniger [...] unabhängiges Eigenleben besitzt[u+201e]

如何使用unicode将双引号替换为正确的引号

也许你们中的一个能帮我。 另外,我很抱歉我的英语不好


Tags: importre密码风格引号学院print双引号
3条回答

您可以在字符串中有"时进行迭代,并在每次迭代中替换一对引号:

zitat = 'Laut Durkheim ist ein "soziologischer Tatbestand jede mehr oder weniger [...] unabhängiges Eigenleben besitzt"'

print(f"Before replace: {zitat}")

while "\"" in zitat:
    zitat = zitat.replace("\"", "\u201e", 1)
    zitat = zitat.replace("\"", "\u201c", 1)

print(f"After replace: {zitat}")

1作为replace()中的第三个参数,仅替换"的第一个出现非常重要。这应该为任何偶数为"的字符串提供正确的输出

输出:

Before replace: Laut Durkheim ist ein "soziologischer Tatbestand jede mehr oder weniger [...] unabhängiges Eigenleben besitzt"
After replace: Laut Durkheim ist ein „soziologischer Tatbestand jede mehr oder weniger [...] unabhängiges Eigenleben besitzt“

我猜你在找这个

re.sub(r'"', u"\u201E", zitat)

还是更合适

s = 'Laut Durkheim ist ein "soziologischer Tatbestand jede mehr oder weniger [...] unabhängiges Eigenleben besitzt"'
# substitute the opening quote
output = re.sub('\B"', u"\u201C", s)
# substitute the closing quote as well
output = re.sub('"\B', u"\u201D", output)

>>> output
'Laut Durkheim ist ein “soziologischer Tatbestand jede mehr oder weniger [...] unabhängiges Eigenleben besitzt”'

'Laut Durkheim ist ein “soziologischer Tatbestand jede mehr oder weniger [...] unabhängiges Eigenleben besitzt”'

re.sub比一次又一次地替换更有效,使用替换函数可以一次完成:


import re
s = '"this" "is" "a" "test" "string"'
s = re.sub(r'(\b")|("\b)',lambda m: '\u201c' if m.group(1) else '\u201e',s)
print(s)
„this“ „is“ „a“ „test“ „string“

相关问题 更多 >