ファイル名から特定の値を抽出するためにPerl正規表現を使用したいと思います。 (私は最後の_
後に、(常に3であることが保証)最初の3桁の数字、文字列の最後の部分を抽出したい以上のことからPerl正規表現から特定の値を抽出する
testImrrFoo_Bar001_off
testImrrFooBar_bar000_m030
testImrrFooBar_bar231_p030
: 彼らは、次の(有効な)名前を持っていますoff
、または(m
またはp
)のいずれかで、3桁の数字が続きます)。最初に抽出するのは3桁、2番目の文字列です。
そして、私は次のメソッド(私はこれが1最適な/素敵ではないかもしれません実現)で出てきた:
のみ$1
は、私が欲しい有効な結果(情報のつまり最後のビットを持っている
my $marker = '^testImrr[a-zA-z_]+\d{3}_(off|(m|p)\d{3})$';
if ($str =~ m/$marker/)
{
print "1=$1 2=$2";
}
)、$2
が空になります。どのようにそれらの3桁を中央に取得する上の任意のアイデア?
ダーン!とても近い。私は誓う、X年の実践の後、私はこれらの皮肉な正規表現を理解するだろう...! –
@ titus.andronicusでは、あなたは正規表現をテストするためにhttps://regex101.com/に行くことができます。また、キャプチャしたグループの中身を提供します。正規表現のデバッグに役立ちます。 –