早教吧作业答案频道 -->英语-->
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.如果a≠0,p是正整数,那么下列各式中错误的是:()A.a^-p=1/a^pB.a^-p=(1/ 2020-03-30 …
在△ABC中,AB=AC=a,BC=b,∠A=36°,记m=a+ba−b,n=(a+b)2ab,p 2020-05-13 …
二次函数y=ax²+bx+c的图像如图所示,若M=4a+2b+c,N=a-b+c,P=4a+2b, 2020-05-16 …
数论题目(信息安全数学基础),thanksn是合数,p是n的素因数,证明:若p^a整除n,但p^( 2020-05-22 …
求渐化式~急已知:p(n)=1/2p(n-1)+1/2p(n-2)求p(n)用n表示由已知可得:p 2020-07-08 …
已知{a^n}是等差列数,证明m+n=p+q,a^m+a^n=a^p+a^q急, 2020-07-23 …
(A/P,i,n)=(A/F,i,n)+i或(A/F,i,n)=(A/P,i,n)-i我已经知道怎 2020-07-23 …
我们把分数分子是1,分母是正整数的分数叫做分数单位.任何一个单位分数1/n=1/p+1/q(n,p 2020-07-30 …
在资金时间价值计算时,i和n给定,下列等式中正确的有().A.(F/A,i,n)=[(P/F,i,n 2021-01-14 …
1、在资金时间价值计算时,i和n给定,下列等式中正确的有?为什么?1、A(F/A,i,n)=[(P/ 2021-01-14 …