摘取官方文档如下(可以看到,简单带过)
(?P=name)
A backreference to a named group; it matches whatever text was matched by the earlier group named name.
然后,我搜索到了一个示例
<(?P<tag>[A-Z][A-Z0-9]*)\b[^>]*>.*?</(?P=tag)>.
在匹配对称的东西时有用,除此之外, 我想不到哪些场景下还会使用(?P=name)这个语法, 自己也用的少(但我隐约感觉自己并没有掌握它的用法)
能否给点启发?
Python2/Python3
Perl风格正则
附:
关于此语法的一些介绍: http://www.regular-expression...
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
和 分组 差不多,这叫 命名分组,就是给 分组 定个名字,方便以后引用。
举个栗子:
比如要匹配2个同样的字符
'(\w)\1',\1是对(\w)的引用。这样有个弊端,就是分组很多,而且有嵌套的时候,很难分清
\n引用的是哪个分组。用命名分组就直观多了。
'(?P<word>\w)(?P=word)'