我想在我的字符串中用"%%"替换所有"%".但是,我的字符串也可能有"%{abc}",这不应该被替换.
输入:我的名字是%{name},我的%得分是%{percentage}%!
输出:我的名字是%{name},我的%%得分是%{percentage} %%!
您可以使用此正则表达式匹配所有%未成功的正则表达式{
s.gsub(/%(?!\{)/, '%%')
Run Code Online (Sandbox Code Playgroud)
编辑
为防止更换%%(至%%%%):
s.gsub(/(?<!%)%(?![{%])/, '%%')
Run Code Online (Sandbox Code Playgroud)
请注意,这将阻止替换%%%,以防万一其他行为被预期.
感谢@MichaelKohl为gsub.@ZainZafar(OP)提供完整的解决方案.