Heim >Backend-Entwicklung >PHP-Tutorial >正则:分组问题
数据
<code><li><a href="/html/zjly/">走进临沂</a></li> <li><a href="/html/csmp/">城市名片</a></li> <li><a href="/html/tzys/">投资优势</a></li> <li><a href="/html/zzcy/">支柱产业</a></li> <li><a href="/html/xyjj/">县域经济</a></li> <li><a href="/html/tzfw/">投资服务</a></li> </code>
正则1:
<code>(?</code>
匹配结果
正则2:
<code>(?</code>
匹配结果
问题
正则1和正则2只有中间的(\1)
和\"'
,按我的理解,此时的分组结果:\1
要吗是"或',此时的正则表达式2((?)应该能够正常匹配url才对,而结果却不是这样的(如第2图所示)
数据
<code><li><a href="/html/zjly/">走进临沂</a></li> <li><a href="/html/csmp/">城市名片</a></li> <li><a href="/html/tzys/">投资优势</a></li> <li><a href="/html/zzcy/">支柱产业</a></li> <li><a href="/html/xyjj/">县域经济</a></li> <li><a href="/html/tzfw/">投资服务</a></li> </code>
正则1:
<code>(?</code>
匹配结果
正则2:
<code>(?</code>
匹配结果
问题
正则1和正则2只有中间的(\1)
和\"'
,按我的理解,此时的分组结果:\1
要吗是"或',此时的正则表达式2((?)应该能够正常匹配url才对,而结果却不是这样的(如第2图所示)
([^(\1)]*)
的问题在于方括号里面不能使用编号...
------------------
补充: \1
在方括号是没有后向引用的作用的. \1
在方括号中代表的意思是ctrl-a
,16进制的\x01
.就如\11
匹配的是tab
.
参考:Escape sequences
还有, \1
如果有反向引用的作用,就有可能与 []是针对字符集里的单个字符为单位进行匹配
这个规则冲突.所以,\1
在[]
没有反向引用的作用.