如何替换特殊字符

2024-09-24 22:19:00 发布

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

我如何用冒号(:)替换引文中页码的指示: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”。 第二部分删除引文中的每个点。它应该只删除支架内的点


Tags: replaceprint冒号einistlautdurkheimsoziologischer
2条回答

带有正则表达式的解决方案(将仅替换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).'

可以一次替换多个字符

>>> 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”,我们可以反向拆分字符串,并将拆分的部分与所需的字符连接起来

>>> 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).'

如果未选中jarvis' answer.

相关问题 更多 >