Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想在我的字符串中用“%%”替换所有“%”。但是,我的字符串也可能有“%{abc}”,这不应该被替换。
输入:我的名字是 %{name},我的分数是 %{percentage} %! 输出:我的名字是 %{name},我的 %% 分数是 %{percentage} %%!
输入:我的名字是 %{name},我的分数是 %{percentage} %!
输出:我的名字是 %{name},我的 %% 分数是 %{percentage} %%!
您可以使用此正则表达式匹配所有%未成功的{
%
{
s.gsub(/%(?!\{)/, '%%')
编辑
为了防止替换%%(to %%%%):
%%
%%%%
s.gsub(/(?<!%)%(?![{%])/, '%%')
请注意,这将阻止替换%%%,以防万一出现其他行为。
%%%
归功于 @MichaelKohl 的 gsub。@ZainZafar (OP) 提供完整的解决方案。