首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RegEx捕获多个重复的可选字段?

RegEx捕获多个重复的可选字段?
EN

Stack Overflow用户
提问于 2017-03-16 01:29:51
回答 1查看 68关注 0票数 0

对RegEx来说还是个新手,别对我太客气了。我想知道你是否可以捕获多个重复的可选字段?例如,此URL有多个相关的元值字段。但是有些网址只有一个meta,有些网址有3+。下面的RegEx将可选地仅捕获第一个元值。

我的源现在只需要捕获不到4个metas,所以我只需在RegEx中粘贴重复的:(((?!meta-value).)+meta-value">([^<]+))?来捕获前4个元数据。

然而,我想知道是否有更好的方法。我考虑过在单独的RegEx中捕获元数据,但它们与URL相关,所以我试图同时捕获它们。

示例RegEx:

代码语言:javascript
复制
<a href="([^"]+)(((?!meta-value).)+meta-value">([^<]+))?

示例文本(第一个URL有两个元值类别,第二个URL只有一个):

代码语言:javascript
复制
bla bla <a href="testurl.html"> bla bla <div id="meta-value">Category</div> bla bla bla <div id="meta-value">Diff Category</div> bla bla <a href="testurl2.html"> thsdlkjfh <div id="meta-value">Category2</div> bla bla bla 

http://www.regexpal.com/?fam=97173

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-16 05:01:46

我不确定我是否完全理解了期望的结果,但是如果您在每个<a>标记中查找每个div元素的内容,那么我建议使用两个匹配项。

第一个方法应该获取所有的<a>标记及其内容:<a href="(.+?)".*?<\/a>,如果您愿意,还可以使用url的捕获组

然后迭代刚刚创建的<a>标记列表,并使用下面的表达式提取元部件:<div id="meta-value">(.*?)<\/div>

您可以尝试使用这些表达式here

如果这不能满足您预期的结果,请进一步澄清。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42816759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档