正規表現を使用して基本プログラムを作成しました。 しかし、マッチした部分の代わりに行全体が返されています。パターン一致のテキストのみを抽出する
番号を抽出したいだけです。
use strict;
use warnings;
my $line = "ABMA 1234";
$line =~ /(\s)(\d){4}/;
print $line; #prints *ABMA 1234*
正規表現は間違っていますか?
正規表現を使用して基本プログラムを作成しました。 しかし、マッチした部分の代わりに行全体が返されています。パターン一致のテキストのみを抽出する
番号を抽出したいだけです。
use strict;
use warnings;
my $line = "ABMA 1234";
$line =~ /(\s)(\d){4}/;
print $line; #prints *ABMA 1234*
正規表現は間違っていますか?
あなたは対応する値との正確な値を置き換えることができます。あなたはテキストを削除していません\w
;あなたは、新しい文字列に値を格納する場合
use strict;
use warnings;
my $line = "ABMA 1234";
$line=~s/([A-z]*)\s+(\d+)/$2/;
print $line; #prints only 1234
(my $newstring = $line)=~s/([A-z]*)\s+(\d+)/$2/;
print $newstring; #prints only 1234
はこれを試してみてください。
あなたは1234を印刷したい場合、あなたは正規表現を変更し、第二試合を印刷する必要があります。
use strict;
use warnings;
my $line = "ABMA 1234";
$line =~ /(\s)(\d{4})/;
print $2;
文字クラス '[A-z]'には、大文字と小文字の英字だけでなく、 '['、 '\'、 ']'、 '^'、 '_'、' \ '非ASCII文字のマッチングを防ぐために、 '/ a'修飾子が必要な' [A-Za-z] 'や' [[alpha:]] 'や' \ p {PosixAlpha} 'が必要です。 – Borodin
ありがとうございました。確かに私は更新します。 – ssr1012