0

次のテキスト形式の場合、括弧内の「ユーザー番号」の値を取得するにはどうすればよいですか? 形式は同じですが、括弧内の値はファイルごとに異なります。

User name [michael]
User age [25]
User number [2432]
User city [Memphis]
4

2 に答える 2

1

解決策 1:

my ($number) = $file_as_string =~ /User number \[(\d+)\]/; 

正規表現の一致は、キャプチャされた値をリスト コンテキストでのみ返します (そのためmy (...)、単に ではなくmy ...)

解決策 2:

my $number;
$file_as_string =~ /User number \[(\d+)\]/
     and $number = $1;

また、特別な変数 $1、$2 などでキャプチャされたものを保存しますが、注意してください: 一致が失敗した場合、以前に成功した一致の残りの $1 値が変数に忍び込む可能性があります (したがって、and文字列が一致しない限り、$number は undef になります)。

于 2012-10-04T07:06:27.680 に答える
0

ユーザー番号のみを取得するには、次のようにします。

/User number \[(\d*)\]/

これで、番号は最初のキャプチャ グループ (括弧で定義()) で見つかります。[and]は正規表現の特殊文字であり、文字クラスを示すため、エスケープすることが重要です。

于 2012-10-03T21:26:18.260 に答える