存在带前缀的重复href时,如何精准匹配目标href="?
解决正则匹配普通href而非th:href的问题
你的问题出在负向断言的方向上:原正则用的是正向负预查(?!th:),它只能断言当前位置之后不是th:,但无法限制href前面的内容——th:href里的href前面是th:,但这个断言检查的是href开头位置的后面,自然不会触发排除逻辑,导致所有href都被匹配。
修正方案是改用负向回顾后发断言(?<!th:),它会检查href前面的内容不是th:,这样就能精准匹配普通的href=":
(?<!th:)href="(?!(http|https|\d))
测试验证:在你的目标字符串中,这个正则只会匹配href="css/fonts.css"里的href="部分,不会触碰到th:href里的对应内容。
内容的提问来源于stack exchange,提问作者Indraraj26
相关产品推荐
相关产品推荐

