Regex URI匹配的正则表达式(字符串末尾)
我有如下URI:Regex URI匹配的正则表达式(字符串末尾),regex,Regex,我有如下URI: /myurl/company/1234/add/task /myurl/company/1234 /myurl/company/1234/remove/task "/myurl/company/(.)+/add/task" "/myurl/company/(.)+/remove/task" /myurl/company/1234 像这样的比赛: /myurl/company/1234/add/task /myurl/company/1234 /myurl/company/
/myurl/company/1234/add/task
/myurl/company/1234
/myurl/company/1234/remove/task
"/myurl/company/(.)+/add/task"
"/myurl/company/(.)+/remove/task"
/myurl/company/1234
像这样的比赛:
/myurl/company/1234/add/task
/myurl/company/1234
/myurl/company/1234/remove/task
"/myurl/company/(.)+/add/task"
"/myurl/company/(.)+/remove/task"
/myurl/company/1234
我的问题是-如果我想找到这样的URI怎么办:
/myurl/company/1234/add/task
/myurl/company/1234
/myurl/company/1234/remove/task
"/myurl/company/(.)+/add/task"
"/myurl/company/(.)+/remove/task"
/myurl/company/1234
因为这是行不通的:
"/myurl/company/(.)+"
如何锚定正则表达式以找到任何结尾没有另一个反冲的内容(表示将出现更多URI)?如果我们只想捕获以数字结尾的URL,我们可以使用以下表达式:
^\/myurl\/company\/[0-9]+$
或:
或者,如果需要的话,我们可以将它们与可选组组合以捕获所有,例如:
(\/myurl\/company\/[0-9]+)(\/add\/task)?(\/remove\/task)?
或者,我们将使用逻辑or和捕获组:
(\/myurl\/company\/[0-9]+)|(\/add\/task)|(\/remove\/task)
正则表达式电路
可视化正则表达式:
劝告
建议:
您可以对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}
如果我们使用UUID而不仅仅是int(发生在几点上)@user10776719,而不是
[0-9]+
,那么最好的方法是什么呢?您可以使用正则表达式作为UUID:[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}
锚定到开头<代码>$
将锚定到末端。两种方法都要彻底