正则表达式 - 排除包含超过 2 个“/”的子字符串

regex - exclude substring contains more than 2 "/"

我有以下字符串的列表:

/fajwe/conv_1/routing/apwfe/afjwepfj
/fajwe/conv_2/routing/apwfe
/fajwe/conv_2/routing
/fajwe/conv_3/routing/apwfe/afjwepfj/awef
/fajwe/conv_4/routing/apwfe/afjwepfj/awef/0o09

我希望正则表达式只匹配单词 routing 后不超过 1 个 / 的字符串。即 /fajwe/conv_2/routing/apwfe/fajwe/conv_2/routing.

目前我使用正则表达式 ^((?!rou\w+(\/\w+){2,}).)*$ 但它不匹配任何内容。我怎样才能写一个正则表达式来 exclude strings contain more than 2 / after the word routing?

我很想了解如何使用 Negative Lookbehind 来实现这一点。非常感谢!

是这样的吗?

^.*\/routing(\/[^\/]*){0,1}$

正如 @revo 指出的那样,您的正则表达式与多行标记 m 匹配。

^((?!rou\w+(\/\w+){2,}).)*$

您也可以这样尝试:

^\/fajwe\/conv_\d\/routing(?:\/[^\/]+)?$

根据您的语言环境,您可以 \/ escape the forward slash

routing(\/[^\/]*)?$

好了

https://regex101.com/r/KjE8ed/1/