{すべての数値サブシーケンスが...}ペアで囲まれるように文字列を変換したいと思います。
例えば:
input_string = "APPL[E]5XXXX"
output_string = "APPL[E]{5}XXXX"
たとえば、各文字列には1つ以上の数字を含めることができBASIC76XXXXX98ZZZZ、出力は次のようになります。BASIC{76}XXXXX{98}zzzz
これを達成できるかどうかわからない。どんな助けでも大歓迎です。
私はあなたがこのようなものを探していると思います:
$string =~ s/(\d+)/{$1}/g;
$1これにより、連続する数字が一致し、中括弧で囲まれた最初にキャプチャされたサブストリング(一致全体と一致します)に置き換えられます。すべてのgオカレンスが置き換えられていることを確認することです。
これは確かに可能です。
数字に一致する正規表現が必要であり、数字をキャプチャしてから、一致を中括弧で囲まれたセットに置き換えます。
my $input = 'APPL[E]5XXXX';
$input =~ s/(\d+)/{$1}/g;
\d+数字。()キャプチャして保存し$1ます。s///は置換正規表現です。/g「グローバル」を意味します。別名、すべての試合でこれを行います。