我有这样的URI:
/myurl/company/1234/add/task
/myurl/company/1234
/myurl/company/1234/remove/task
和这样的匹配项:
"/myurl/company/(.)+/add/task"
"/myurl/company/(.)+/remove/task"
我的问题是-如果我想找到这样的URI,该怎么办?
/myurl/company/1234
因为这不起作用:
"/myurl/company/(.)+"
如何锚定正则表达式以查找没有其他反冲的结尾(表明会有更多URI)?
答案 0 :(得分:3)
如果我们只想捕获那些以数字结尾的网址,则可以使用以下表达式:
^\/myurl\/company\/[0-9]+$
或:
\/myurl\/company\/[0-9]+$
或者,如果需要的话,我们可以将它们与可选组结合起来以捕获所有对象,例如:
(\/myurl\/company\/[0-9]+)(\/add\/task)?(\/remove\/task)?
或者,我们将使用逻辑或并捕获组:
(\/myurl\/company\/[0-9]+)|(\/add\/task)|(\/remove\/task)
jex.im可视化正则表达式:
Sunny建议:
您可以对UUID使用正则表达式来代替
[0-9]+
:[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}