数据
正则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在[]没有反向引用的作用.
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。