Ruby 在字符串中匹配isloated%所需的正则表达式
我想用字符串中的“%”替换所有“%”。但是,我的字符串也可能有“%{abc}”,这不应该被替换 输入:我的名字是%{name},我的%分数是%{percentage}% 输出:我的名字是%{name},我的%%分数是%{percentage}%%Ruby 在字符串中匹配isloated%所需的正则表达式,ruby,regex,string,Ruby,Regex,String,我想用字符串中的“%”替换所有“%”。但是,我的字符串也可能有“%{abc}”,这不应该被替换 输入:我的名字是%{name},我的%分数是%{percentage}% 输出:我的名字是%{name},我的%%分数是%{percentage}%% 您可以使用此正则表达式匹配所有未被{ s.gsub(/%(?!\{)/, '%%') 编辑 要防止更换%%(至%%): s.gsub(/(?)? 请注意,这将阻止替换%%,以防出现其他行为 gsub归功于@MichaelKohl.@ZainZafar
您可以使用此正则表达式匹配所有未被
{
s.gsub(/%(?!\{)/, '%%')
编辑
要防止更换%%
(至%%
):
s.gsub(/(?)?
请注意,这将阻止替换%%
,以防出现其他行为
gsub归功于@MichaelKohl.@ZainZafar(OP)获得完整的解决方案。您可以使用此正则表达式匹配所有%
未成功的{
s.gsub(/%(?!\{)/, '%%')
编辑
要防止更换%%
(至%%
):
s.gsub(/(?)?
请注意,这将阻止替换%%
,以防出现其他行为
gsub归功于@MichaelKohl。@ZainZafar(OP)获得了完整的解决方案。Hooray for negative lookaheads!也许可以为替换添加完整的答案:s.gsub(/%(?!\{)/,“%%”)
。谢谢,这很管用!一个小问题是它将%%替换为%%%。我知道我在问题中没有提到这个案例,但如果您能修改您的答案以包含该案例?负面外观万岁!也许可以为替换添加完整的答案:s.gsub(/%(?!\{,'%'))
。谢谢,这很有效!一个小问题是它将%%替换为%%%。我知道我在问题中没有提到这个案例,但如果您可以修改您的答案以包含该案例,请?