我经常使用php这样的PRCE:
^/someurl/*
有很多网址,例如
/someurl/test
/someurl/something/{version}/{name}/{etc}
并且我需要排除这样的网址:
^/someurl/test/{version}/commands/*
{version} is a float number like 2.1.1 2.4
我已经尝试过了
^((?!/someurl/test/[0-9].+/commands/*))
有效
但是我需要将此添加到单行中
^/someurl/*
不包括^((?!/someurl/test/[0-9].+/commands/*))
如何加入他们?谢谢。
答案 0 :(得分:2)
您可以使用
^/someurl/(?!test/[0-9.]+/commands/).*
或更精确一点
^/someurl/(?!test/[0-9]+(?:\.[0-9]+)+/commands/).*
请参见regex demo
详细信息
^/someurl/
-字符串开头的/someurl/
(?!test/[0-9.]+/commands/)
-当前位置的右边,不能是test/
,不能是1+个数字或点,然后不能是/commands/
子字符串(如果[0-9]+(?:\.[0-9]+)+
使用它将匹配1个或多个数字,然后匹配1个或多个重复的点,后跟1+个数字).*
-尽可能多的0个字符。