1

文字列を含む変数があります。

$name="mak -o create.pl -n create.txt";

ここで、常に -o が続く create.pl として値を取得できるパターンに一致させたいと考えています。つまり、これは常にこの「-o create.pl」のように発生することが必須ですが、「create」の代わりにこのような名前を付けることができますが、拡張子は常に「.pl」になります。

$name="mak -o string.pl -n create.txt"; # or it could be
$name="mak -o name.pl -n create.txt";
4

4 に答える 4

0

次の正規表現を試してください。

/-o\s(.*?)\.pl/

$1一致した名前になります。

于 2013-05-23T06:44:30.957 に答える
0

split の使用: スクリプト名を気にする必要はありません。split が処理します。

use strict;

my $name="mak -o name.pl -n create.txt";

my $test = join( " ", (split /\s+/, $name)[1,2] );

print $test;

出力:

-o name.pl   
于 2013-05-23T07:02:08.093 に答える