首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式,该表达式在遇到关键字后匹配值。

正则表达式,该表达式在遇到关键字后匹配值。
EN

Stack Overflow用户
提问于 2018-11-21 20:33:30
回答 1查看 53关注 0票数 1

我有一些由空格分隔的路径,但没有用\s/\s分隔,即:空间、斜线、空间

val1 / val2 val4 / val7关键字/ somevalue / bbb ccc / ddd eee / fff

  • 第一要素: val1 / val2
  • 第二要素: val4 / val7
  • 第三个元素:关键字/ somevalue
  • 第四要素: aaa / bbb
  • 第五要素: ccc / ddd
  • 第6部分: eee / fff

当我找到关键字时,请注意:

代码语言:javascript
复制
(keyword / [^/\s]*)

在上述匹配之后,唯一可接受的值可以是aaa / bbb和ccc / ddd,无论是订单还是重复。

例如,我应该找个匹配的

  1. val1 / val2 val4 / val7关键字/ somevalue / bbb ccc / ddd
  2. val1 / val2 val4 / val7关键字/ somevalue / bbb
  3. val1 / val2 val4 / val7关键字/ somevalue / ddd
  4. val1 / val2 val4 / val7关键字/ somevalue / ddd / bbb
  5. val1 / val2 val4 / val7关键字/ somevalue / ddd / bbb ccc / ddd

任何其他的组合都应该返回不匹配,例如:当有额外的‘元素’后关键字/ somevalue

  1. val1 / val2 val4 / val7关键字/ somevalue / bbb ccc / ddd eee / fff
  2. val1 / val2 val4 / val7关键字/ somevalue eee / fff / ddd
  3. val1 / val2 val4 / val7关键字/ somevalue aaa / bbb / yyy / ddd

(...)

我应该找个不配的。

有可能用正则表达式来实现它吗?我正试图用正则表达式来解决这个问题,但我坚持住了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-21 20:47:41

让我们试试下面的正则表达式

代码语言:javascript
复制
keyword \/ \w+ ((?:aaa \/ bbb|ccc \/ ddd)(?: |$))+$

其中:

  • keyword是您的固定关键字
  • aaabbbcccddd才是真正需要匹配的
  • aaa \/ bbb是第一对允许的夫妻,ccc \/ ddd是第二个
  • (?: |$)检查一对夫妇后面是空空格还是行$的末尾。

我必须强调,强烈建议使用编程语言进行提取。您应该拆分字符串并检查分区。

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

https://stackoverflow.com/questions/53420079

复制
相关文章

相似问题

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