查询在正则表达式中使用\ w

时间:2013-01-22 13:25:33

标签: regex perl

perl脚本下面打印整个字符串作为输出,但我期待输出为Perl。我是perl和regex的新手。有人请解释一下为什么我没有得到预期的输出。

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

输出;

I am learning Perl

我期待的输出:

Perl

据我所知,输出应该是一个包含一个或多个字母数字字符的单词,并且从最后开始搜索模式。我不明白我在哪里错了。

2 个答案:

答案 0 :(得分:4)

正则表达式匹配不会修改变量。它返回匹配列表或布尔值,具体取决于上下文。

在列表上下文中使用它来捕获匹配项。

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

答案 1 :(得分:2)

匹配操作不会修改

$txt

但是你得到一个新变量$1,其中包含第一个捕获组的内容(在你的例子中包含'Perl'