#!/usr/bin/perl -w
=pod
命名捕获--给匹配上的内容加上标签
捕获到的内容都会保存在%+散列中,这个散列的key为对应的标签;
方便之处就是利于程序扩展和阅读,不用繁琐的一个一个去数括号来获取匹配变量
=cut
zjtest7-frontend:/root/perl# cat a2.pl
use strict;
my $str = "jack and rose";
if ($str =~ /(?<first>\S+) (and|or) (?<second>\S+)/) {
my ($first, $second) = ($+{first}, $+{second});
print "$first\n$second\n"; # jack, rose
}
zjtest7-frontend:/root/perl# perl a2.pl
jack
rose
\s 空格,和 [\n\t\r\f] 语法一样
\s+ 和 [\n\t\r\f]+ 一样
\S 非空格,和 [^\n\t\r\f] 语法一样
\S+ 和 [^\n\t\r\f]+ 语法一样
/******************************************************
zjtest7-frontend:/root/perl# cat a1.pl
my $str="begin 123.456 end"
perl 正则命名捕获
最新推荐文章于 2024-06-30 18:06:03 发布
这篇博客介绍了Perl中使用命名捕获进行正则匹配的方法,通过为捕获内容定义标签,可以方便地在%+散列中存储和访问匹配的变量,简化了程序的扩展和阅读。示例代码展示了如何捕获并打印字符串中的多个部分。
摘要由CSDN通过智能技术生成