0

以下のPerlスクリプトは文字列全体を出力として出力していますが、Perlとしての出力を期待していました.Perlと正規表現は初めてです.誰かが期待した出力が得られない理由を説明してください.

my $txt='I am learning Perl'; 
$txt=~/(\w+)$/;
print $txt;

出力;

I am learning Perl

私が期待していた出力:

Perl

私の知る限り、出力は 1 つ以上の英数字を含む単語である必要があり、パターンの検索は最後から始まります。ここでどこが間違っているのかわかりません。

4

2 に答える 2

4

正規表現の一致では、変数は変更されません。コンテキストに応じて、一致のリストまたはブール値のいずれかを返します。

リストコンテキストで使用して、一致をキャプチャします。

my $txt='I am learning Perl'; 
my ($match) = $txt=~/(\w+)$/;
print $match;
于 2013-01-22T13:29:36.503 に答える
2

$txt一致操作によって変更されません。

$1ただし、最初のキャプチャ グループの内容を含む新しい変数を取得'Perl'します (例では .

于 2013-01-22T13:29:26.750 に答える