1

我想在我的字符串中用“%%”替换所有“%”。但是,我的字符串也可能有“%{abc}”,这不应该被替换。

输入:我的名字是 %{name},我的分数是 %{percentage} %!

输出:我的名字是 %{name},我的 %% 分数是 %{percentage} %%!

4

1 回答 1

5

您可以使用此正则表达式匹配所有%未成功的{

s.gsub(/%(?!\{)/, '%%')

编辑

为了防止替换%%(to %%%%):

s.gsub(/(?<!%)%(?![{%])/, '%%')

请注意,这将阻止替换%%%,以防万一出现其他行为。

归功于 @MichaelKohl 的 gsub。@ZainZafar (OP) 提供完整的解决方案。

于 2012-06-22T16:26:28.213 回答