我有这样的网址:
example.com/test/testurl
example.com/test/test-url
example.com/test/testurl/content
example.com/test/test-url/content
我正在这里进行重定向,所以,我需要一个正则表达式来匹配url,当它只有2个段(比如2个第一个)获得第二个段在一个组中,但是在所有其他段中失败
这是我到目前为止完成的模式:
test\/(\w+)(?!\/)\b
这个与第一个网址匹配,第三个网址失败,很棒。
但它最终匹配第二个和第四个网址,将字词捕捉到破折号。我正在把这头发拉出来,任何指针都很受欢迎。提前致谢 ! :)
答案 0 :(得分:0)
请改用此正则表达式:
test/([^/]+)
它将捕获test/
后的所有非斜杠。
如果需要,可以适当地逃避斜杠。
答案 1 :(得分:0)
首先抛弃\b
。匹配字边界和网址的内容可以包含非字字符。
我将假设您在自己的字符串中获取网址而没有任何其他随附文字。
以下是正则表达式:
<强> REGEX 强>
^[^/]+/test/[^/]+/?$
NO MATCH: example.com/test/
MATCH: example.com/test/testurl
MATCH: example.com/test/test-url
MATCH: example.com/test/test-url/
NO MATCH: example.com/test/testurl/content
NO MATCH: example.com/test/test-url/content
此外,如果您需要添加协议,则可以重写正则表达式:
^[^:]+://[^/]+/test/[^/]+/?$
答案 2 :(得分:0)