正则表达式仅匹配特定类型的URL?

时间:2018-09-05 07:54:38

标签: regex

我想为以下类型的URL创建正则表达式:

/m/abc/xyz/

上面的URL应该始终以/ m /开头,但是abc可以是任何文本,后跟一个正斜杠。 xyz也可以是任何文本后跟正斜杠。该字符串应以此正斜杠结束。

例如,/m/abc/xyz/pqr/不是匹配项。

我尝试使用\/m\/.+\/.+\/$,但它甚至与/m/abc/xyz/pqr/匹配。我如何为此生成正则表达式?有什么工具可以放置我应该匹配的字符串和不应该匹配的字符串,它会为我返回正则表达式。

3 个答案:

答案 0 :(得分:2)

尝试以下操作:\/m\/[^\/]+\/[^\/]+\/$

regex101 demo

当前正则表达式的问题是.匹配所有内容,因此第二个.+可能匹配xyz/pqr。使用[^\/]可以匹配除斜杠以外的所有内容,因此不会溢出。

答案 1 :(得分:0)

去那里:

\/[a-z]\/[a-z]{3}\/[a-z]{3}\/$

答案 2 :(得分:0)

您的正则表达式的问题在于它贪婪(+)尽其所能,因此使其工作不贪婪,

尝试这个

\/m\/.+?\/.+?\/

try demo here