假设我有一个字符串:
'hello$ world$ $'
如何仅删除第二次出现的 $
或者如果我有str'ing'h
如何使用re.sub()
只删除第二个撇号?
无需编写一个将其分解为每个字符的长函数即可找到所有撇号等的索引。
最佳答案
您可以使用此正则表达式:
>>> import re
>>> s = 'hello$ world$ $'
>>> print ( re.sub(r'^([^$]*\$[^$]*)\$', r'\1:', s) )
hello$ world: $
正则表达式详细信息:
^
:开始(
:启动捕获组 #1[^$]*
:匹配0个或多个非$
的字符
\$
:匹配$
[^$]*
:匹配0个或多个非$
的字符
)
:结束捕获组#1\$
:匹配$
用它来解决第二个问题是替换第二个单引号:
s = re.sub(r"^([^']*'[^']*)'", r'\1:', s)
关于python - 仅替换模式中的第二次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60370341/