{
すべての数値サブシーケンスが...}
ペアで囲まれるように文字列を変換したいと思います。
例えば:
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
「グローバル」を意味します。別名、すべての試合でこれを行います。