1

文字列内のすべての「%」を「%%」に置き換えたい。ただし、私の文字列には「%{abc}」も含まれている可能性があり、これは置き換えるべきではありません。

入力: 私の名前は %{name} で、% スコアは %{percentage} %!

出力: 私の名前は %{name} で、私の %% スコアは %{percentage} %%!

4

1 に答える 1

5

この正規表現を使用して、%成功しなかったすべてに一致させることができます{

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

編集

%%(to )の置換を防ぐには%%%%:

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

%%%他の動作が予想される場合に備えて、これにより の置換が防止されることに注意してください。

クレジットは、gsub の @MichaelKohl に送られます。完全なソリューションのための@ZainZafar(OP)。

于 2012-06-22T16:26:28.213 に答える