匹配字符串中的孤立%所需的正则表达式

时间:2012-06-22 16:24:55

标签: ruby regex string

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

  

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

     

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

1 个答案:

答案 0 :(得分:5)

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

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

修改

要防止替换%%(至%%%%):

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

请注意,这样可以防止替换%%%,以防万一其他行为发生。

来自@MichaelKohl的gsub。 @ZainZafar(OP)提供完整的解决方案。