perl 正则表达式反向引用尀g代表什么意思?

2024-12-29 13:18:54
推荐回答(2个)
回答1:

1.官网中的语法:
\g{name} Named backreference
表示后向匹配的意思

2.后向匹配,简单说就是:
匹配,前面已经查找过的某段内容,该段内容,是已经被括号包起来的,叫做组group,组的名字叫做name
你这里就是
之前用

(?\S+)
匹配到了
Flintstone
后面用
\g{last_name}
去匹配,前面的那个
Flintstone

所以,如果去掉,你这段匹配的语法,就和实际字符串,不吻合了。所以去掉就匹配不了了。
不过要注意的是,如果是去查找字符串,即使去掉,也可以匹配到前面那部分:
Fred Flintstone and Wilma


这下明白了吧?

关于后向匹配,更详细的解释,感兴趣的话去看:
(正则的含义是一样的,只是写法有点区别而已,所以可以参考的)

【教程】详解Python正则表达式之: (?<=…) positive lookbehind assertion 后向匹配 /后向断言

(此处不给贴地址,请自己用google搜标题,即可找到帖子地址)

回答2:

命名回溯,就是跟\1差不多,只不过是取了个名字last_name