我有一个字符串pa$$word
。我想将此字符串更改为 pa\$\$word
。必须将其更改为仅限2个或更多此类字符,而不能更改为pa$word
。替换必须发生多次,其中n是" $"符号。例如,pa$$$$word
变为pa\$\$\$\$word
,pa$$$word
变为pa\$\$\$word
。
我该怎么做?
答案 0 :(得分:0)
我相信你之后的正则表达式是:
[$]{2,}
将匹配2个或更多字符$
答案 1 :(得分:0)
import re
def replacer(matchobj):
mat = matchobj.group()
return "".join(item for items in zip("\\" * len(mat), mat) for item in items)
print re.sub(r"((\$)\2+)", replacer, "pa$$$$word")
# pa\$\$\$\$word
print re.sub(r"((\$)\2+)", replacer, "pa$$$word")
# pa\$\$\$word
print re.sub(r"((\$)\2+)", replacer, "pa$$word")
# pa\$\$word
print re.sub(r"((\$)\2+)", replacer, "pa$word")
# pa$word
((\$)\2+)
- 我们在这里创建了两个捕获组。首先是整个匹配,可以在后面称为\1
。第二个捕获组是嵌套的,捕获字符串\$
并称为\2
。因此,我们首先匹配$
一次并确保它在\2+
之后连续存在多次。
因此,当我们找到这样的字符串时,我们使用匹配的字符串和捕获的组调用replacer
函数。在replacer
函数中,我们使用matchobj.group()
得到整个匹配的字符串,然后我们只是将匹配的字符串与\
交错。
答案 2 :(得分:-1)
这应该有帮助
import re
result = re.sub("\$", "\\$", yourString)
或者你可以尝试
str.replace("\$", "\\$")