我有一些路径用空格分隔,但没有用\ s / \ s分隔,即:空格,斜杠,空格
val1 / val2 val4 / val7关键字/ somevalue aaa / bbb ccc / ddd eee / fff
当我找到具有某个值的关键字时:
(keyword / [^/\s]*)
以上匹配之后唯一可接受的值可以是aaa / bbb和ccc / ddd,无论顺序如何,无论重复如何。
例如,我应该得到一个匹配项
任何其他组合都应返回不匹配的内容,例如: 当关键字/ somevalue之后有一些额外的“元素”
(...)
我应该变得不匹配了。
是否可以使用正则表达式来实现? 我试图用正则表达式解决它,但我坚持了。
答案 0 :(得分:2)
让我们尝试以下Regex:
keyword \/ \w+ ((?:aaa \/ bbb|ccc \/ ddd)(?: |$))+$
位置:
keyword
是您的固定关键字aaa
,bbb
,ccc
和ddd
是从字面上匹配的aaa \/ bbb
是允许的第一对,而ccc \/ ddd
是第二对(?: |$)
检查是一对后跟空白还是行$
的结尾。我必须强调,强烈建议使用编程语言进行提取。您应该分割字符串并检查分区。