1
重複文字 'a'を2回使用して 'b'を 'c'に置き換える方法はありますか?例えば :ルビーの正規表現で文字を置き換える方法
ab => ab
aab => aac
aaab => aaab
aaaab => aaaac
aaaabaaabaab => aaacaabaac
重複文字 'a'を2回使用して 'b'を 'c'に置き換える方法はありますか?例えば :ルビーの正規表現で文字を置き換える方法
ab => ab
aab => aac
aaab => aaab
aaaab => aaaac
aaaabaaabaab => aaacaabaac
あなたはb
続いaa
のグループをチェックし、それに応じてキャプチャグループを交換する必要があります。
正規表現:(?<!a)((?:a{2})+)b
説明:a
を番号奇数の存在について
(?<!a)
チェックします。もし存在すれば、全体のマッチは失敗する。
((?:a{2})+)b
はa
の偶数をキャプチャし、続いてb
となります。外部グループは捕捉され、\1
と番号が付けられます。
置き換え:\1c
、つまり最初に取り込まれたグループ、次にc
が続きます。
テスト文字列:交換後
ab
aab
aaab
aaaab
aaaabaaabaab
:
ab
aac
aaab
aaaac
aaaacaaabaac
最後の例では、文字の数に一致しない –
(?) @SebastiánPalma:私はそれがだと思いますOPの代理人のためのタイプミス。 – Rahul