Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 在字符串中匹配isloated%所需的正则表达式_Ruby_Regex_String - Fatal编程技术网

Ruby 在字符串中匹配isloated%所需的正则表达式

Ruby 在字符串中匹配isloated%所需的正则表达式,ruby,regex,string,Ruby,Regex,String,我想用字符串中的“%”替换所有“%”。但是,我的字符串也可能有“%{abc}”,这不应该被替换 输入:我的名字是%{name},我的%分数是%{percentage}% 输出:我的名字是%{name},我的%%分数是%{percentage}%% 您可以使用此正则表达式匹配所有未被{ s.gsub(/%(?!\{)/, '%%') 编辑 要防止更换%%(至%%): s.gsub(/(?)? 请注意,这将阻止替换%%,以防出现其他行为 gsub归功于@MichaelKohl.@ZainZafar

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

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

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


您可以使用此正则表达式匹配所有未被
{

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

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

s.gsub(/(?)?
请注意,这将阻止替换
%%
,以防出现其他行为


gsub归功于@MichaelKohl.@ZainZafar(OP)获得完整的解决方案。

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

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

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

s.gsub(/(?)?
请注意,这将阻止替换
%%
,以防出现其他行为


gsub归功于@MichaelKohl。@ZainZafar(OP)获得了完整的解决方案。

Hooray for negative lookaheads!也许可以为替换添加完整的答案:
s.gsub(/%(?!\{)/,“%%”)
。谢谢,这很管用!一个小问题是它将%%替换为%%%。我知道我在问题中没有提到这个案例,但如果您能修改您的答案以包含该案例?负面外观万岁!也许可以为替换添加完整的答案:
s.gsub(/%(?!\{,'%'))
。谢谢,这很有效!一个小问题是它将%%替换为%%%。我知道我在问题中没有提到这个案例,但如果您可以修改您的答案以包含该案例,请?