使用 unicode 替换特殊字符
replace special characters using unicode
如何根据德语拼写将双引号替换为风格正确的引号(„ U+201e 或 “ U+201c )。
示例:
zitat = 'Laut Durkheim ist ein "soziologischer Tatbestand jede mehr oder weniger [...] unabhängiges Eigenleben besitzt"'
我试过代码
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 将双引号替换为正确的双引号?
也许你们中的一位可以帮助我。
P.S。对不起我的英语不好!
我猜你正在找这个
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”'
您可以在字符串中有 "
时进行迭代,并在每次迭代中替换一对引号:
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
比一遍又一遍的替换更高效,而且有了替换功能可以一次完成:
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“
如何根据德语拼写将双引号替换为风格正确的引号(„ U+201e 或 “ U+201c )。
示例:
zitat = 'Laut Durkheim ist ein "soziologischer Tatbestand jede mehr oder weniger [...] unabhängiges Eigenleben besitzt"'
我试过代码
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 将双引号替换为正确的双引号?
也许你们中的一位可以帮助我。 P.S。对不起我的英语不好!
我猜你正在找这个
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”'
您可以在字符串中有 "
时进行迭代,并在每次迭代中替换一对引号:
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
比一遍又一遍的替换更高效,而且有了替换功能可以一次完成:
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“