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

时间:2018-04-01 11:58:43

标签: regex regex-negation regex-lookarounds regex-group

我有以下字符串的列表:

/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

我想要一个正则表达式,只匹配字符/之后不超过1 routing的字符串。即/fajwe/conv_2/routing/apwfe/fajwe/conv_2/routing

目前我使用正则表达式^((?!rou\w+(\/\w+){2,}).)*$但它没有匹配。如何在/之后的排除字符串包含多于2 routing 的正则​​表达式?

我很想学习如何使用负面观察来实现这一目标。非常感谢!

3 个答案:

答案 0 :(得分:1)

这样的东西?

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

答案 1 :(得分:1)

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

你去了

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

答案 2 :(得分:0)

您的正则表达式与您要查找的多线标记m匹配,@revo指出。

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

你也可以这样试试:

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

根据您的语言背景,您可以\/ escape the forward slash