【发布时间】:2019-04-24 11:53:31
【问题描述】:
我有一些用空格分隔的路径,但没有用 \s/\s 分隔,即:空格、斜杠、空格
val1 / val2 val4 / val7 关键字 / somevalue aaa / bbb ccc / ddd eee / fff
- 第一个元素:val1 / val2
- 第二个元素:val4 / val7
- 第三个元素:关键字/某个值
- 第四个元素:aaa / bbb
- 第5个元素:ccc / ddd
- 第六个元素:eee / fff
当我找到带有某个值的关键字时:
(keyword / [^/\s]*)
上述匹配后唯一可接受的值可以是aaa/bbb和ccc/ddd,不管顺序,不管重复。
例如我应该得到一个匹配
- val1 / val2 val4 / val7 关键字 / somevalue aaa / bbb ccc / ddd
- val1 / val2 val4 / val7 关键字 / somevalue aaa / bbb
- val1 / val2 val4 / val7 关键字 / somevalue ccc / ddd
- val1 / val2 val4 / val7 关键字 / somevalue ccc / ddd aaa / bbb
- val1 / val2 val4 / val7 关键字 / somevalue ccc / ddd aaa / bbb ccc / ddd
任何其他组合都应返回不匹配,例如: 当关键字/某个值之后有一些额外的“元素”时
- val1 / val2 val4 / val7 关键字 / somevalue aaa / bbb ccc / ddd eee / fff
- val1 / val2 val4 / val7 关键字 / somevalue eee / fff ccc / ddd
- val1 / val2 val4 / val7 关键字 / somevalue aaa / bbb zzz / yyy ccc / ddd
(...)
我应该变得不匹配。
可以用正则表达式实现吗? 我试图用正则表达式解决它,但我卡住了。
【问题讨论】:
-
不,这不是我要找的。编程语言无所谓,但我加了额外的标签
-
编程语言确实很重要,因为并非所有语言都使用相同的正则表达式风格。因此,适用于一种语言的模式可能不适用于另一种语言。
-
这对我来说没关系,反正谢谢你的努力。