早教吧作业答案频道 -->英语-->
perl正则表达式反向引用\g代表什么意思?my$names="FredFlintstoneandWilmaFlintstone";if($namesm/(?\S+)and\S+\g{lastname}/){say"Isaw$+{lastname}";}为什么这里\g{lastname}g去掉了,就匹配不了了?
题目详情
perl 正则表达式反向引用\g代表什么意思?
my $names = "Fred Flintstone and Wilma Flintstone";
if ( $names m/(?\S+) and \S+ \g{last_name}/ ) {
say "I saw $+{last_name}";
}
为什么这里\g{last_name} g去掉了,就匹配不了了?
my $names = "Fred Flintstone and Wilma Flintstone";
if ( $names m/(?\S+) and \S+ \g{last_name}/ ) {
say "I saw $+{last_name}";
}
为什么这里\g{last_name} g去掉了,就匹配不了了?
▼优质解答
答案和解析
1.官网中的语法:
\g{name} Named backreference
表示后向匹配的意思
2.后向匹配,简单说就是:
匹配,前面已经查找过的某段内容,该段内容,是已经被括号包起来的,叫做组group,组的名字叫做name
你这里就是
之前用
(?\S+)
匹配到了
Flintstone
后面用
\g{last_name}
去匹配,前面的那个
Flintstone
所以,如果去掉,你这段匹配的语法,就和实际字符串,不吻合了.所以去掉就匹配不了了.
不过要注意的是,如果是去查找字符串,即使去掉,也可以匹配到前面那部分:
Fred Flintstone and Wilma
的
这下明白了吧?
关于后向匹配,更详细的解释,感兴趣的话去看:
(正则的含义是一样的,只是写法有点区别而已,所以可以参考的)
【教程】详解Python正则表达式之: (?
\g{name} Named backreference
表示后向匹配的意思
2.后向匹配,简单说就是:
匹配,前面已经查找过的某段内容,该段内容,是已经被括号包起来的,叫做组group,组的名字叫做name
你这里就是
之前用
(?\S+)
匹配到了
Flintstone
后面用
\g{last_name}
去匹配,前面的那个
Flintstone
所以,如果去掉,你这段匹配的语法,就和实际字符串,不吻合了.所以去掉就匹配不了了.
不过要注意的是,如果是去查找字符串,即使去掉,也可以匹配到前面那部分:
Fred Flintstone and Wilma
的
这下明白了吧?
关于后向匹配,更详细的解释,感兴趣的话去看:
(正则的含义是一样的,只是写法有点区别而已,所以可以参考的)
【教程】详解Python正则表达式之: (?
看了 perl正则表达式反向引用\...的网友还看了以下:
线性表示的求法当α1,α2,...,αs线性无关,β可由α1,α2,...,αs线性表示,对矩阵( 2020-04-27 …
为了安全,在公路上行驶的汽车之间应该保持必要的距离,已知某高速公路的最高限速为v=30m/s.,E 2020-05-16 …
一只底面积为s的箱子,放在面积为3s的水平桌面中央时,箱子对桌面的压强为p.放在面积为1/5s的水 2020-05-17 …
对某一互斥信号量S,若S.value=5,做了3次P操作后又做了2次V操作,此时S.value为 ( 2020-05-24 …
Everythinginthisworldissuesfullyformedfrommanufac 2020-06-03 …
为什么年后面加"s"+了s是表示年代那不加s就是不是只是表示年份啊?那听力或写作还有其它方面,我怎 2020-07-20 …
OUREDUCATIONALSYSTEMLEAVESSOMETHINGTOBEDISIRED.这句 2020-07-24 …
为什么?SXS->S是什么?为什么要这样写!为什么能代表加法.1.二元运算的定义与实例定义10.1 2020-07-25 …
突然发现了一个问题哦,m/p/s,这道题是应该把m/p堪为一个整体再*1/s,还是p/s,再用m*s 2020-11-11 …
求1000内能被7不能被三整除数的和s=0forI=1to1000if(mod(I,7)=0)and 2020-11-20 …