如何替换特殊字符



如何用冒号(:(替换引文中页码的指示:S.

示例:

x = 'Laut Durkheim ist ein "soziologischer Tatbestand [...] individuellen Äußerungen unabhängiges Eigenleben besitzt" (Durkheim 1984, S. 115).'

->'[…](涂尔干1984:115(

x = x.replace('S', '')
print(x)
Laut Durkheim ist ein "soziologischer Tatbestand [...] individuellen Äußerungen unabhängiges Eigenleben besitzt" (Durkheim 1984, . 115).
x = x.replace('.', ':')
print(x)
Laut Durkheim ist ein "soziologischer Tatbestand [:::] individuellen Äußerungen unabhängiges Eigenleben besitzt" (Durkheim 1984, : 115):

第一部分删除引文中的"S"。第二部分删除引文中的每一个点。它应该只是删除大括号内的点。

您可以同时替换多个字符。

>>> x = 'Laut Durkheim ist ein "soziologischer Tatbestand [...] individuellen Äußerungen unabhängiges Eigenleben besitzt" (Durkheim 1984, S. 115).'
>>> x.replace('S.', ':')
'Laut Durkheim ist ein "soziologischer Tatbestand [...] individuellen Äußerungen unabhängiges Eigenleben besitzt" (Durkheim 1984, : 115).'

正如mhawke"S"所说可以存在于字符串中的其他位置,而replace函数将更改所有这些值。

假设没有其他"S"出现在我们要替换的字符串之后,我们可以反向拆分字符串,并将拆分的部分与我们想要的字符连接起来。

>>> x = 'S. Laut Durkheim ist ein "soziologischer Tatbestand [...] individuellen Äußerungen unabhängiges Eigenleben besitzt" (Durkheim 1984, S. 115).'
>>> ':'.join(x.rsplit('S.', 1))
'S. Laut Durkheim ist ein "soziologischer Tatbestand [...] individuellen Äußerungen unabhängiges Eigenleben besitzt" (Durkheim 1984, : 115).'

如果没有,请检查贾维斯的回答。

使用regex的解决方案(只替换后面跟着空白和数字的S.(:

import re
>>> x = 'Laut Durkheim ist ein "soziologischer Tatbestand [...] individuellen Äußerungen unabhängiges Eigenleben besitzt" (Durkheim 1984, S. 115).'
>>> re.sub(r",W*(S.)(W*d+)", ":\2", x)
'Laut Durkheim ist ein "soziologischer Tatbestand [...] individuellen Äußerungen unabhängiges Eigenleben besitzt" (Durkheim 1984: 115).'

最新更新