java - RegEx - 在 HTML-Anchor 元素中的组之间未捕获的任何内容
问题描述
因此,我正在尝试修改 RegEx 以捕获 HTML-Anchor 元素内的标签(我知道您不应该这样做,但这是必需的)。但是当我试图不匹配捕获组之间的任何内容时出现了一个问题,因为“任何内容”都是按字面意思表示的,因此元素内的标签不会被捕获。到目前为止,我已经尝试了一个非捕获组和一个否定集,但两者似乎都“吞噬”了我的组。
/<a[^>]*href=\"([^\"]+)\"(?:.*?)( data-survey=[\"\']({[^}]*})[\"\'])?( data-answer=[\"\']({[^}]*})[\"\'])?[^>]*\/?>/g
(?:.*?)
似乎是这里的罪魁祸首。例如:<a href="#" foo data-survey="{...}">
。只要 和 之间没有任何东西<a
,data...
它似乎就可以工作。
解决方案
尝试替换有问题的:
(?:.*?)
和:
(?:(?! data-(?:survey=|answer=)).)*
这表示只要下一个字符不是' data-survey='
or就继续匹配下一个字符' data-answer='
。
推荐阅读
- objective-c - 使用配置文件构建 macOS 命令行实用程序
- sequelize.js - SequelizeDatabaseError:关系“设备”不存在
- python - PEP8 的多个参数中的空格
- python - 在 python 中使用 getattr
- javascript - 如何使用 nuxt 中的函数克隆 vue 元素?
- reporting-services - 如果我们需要考虑两个参数,如何在 SSRS 中定义行数据组?
- asp.net - ASP.NET CORE 应用程序在启动页面上显示 index.html 页面,尽管我没有任何中间件
- reactjs - ant design 清除所有复选框
- java - 并发哈希图删除复杂值
- r - R 旋转包含向量的数据框单元格