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