[英]Regex to match URL - number at end of string, but also match characters at start of string
我需要匹配以下网址格式
/yc/leroy-jenkins-123
所以我需要同时匹配/yc/
部分和123
我可以将URL的/leroy-jenkins-123
与以下内容匹配
server.get(/([^-]*)$/, (req, res) => {
const actualPage = '/profile'
const queryParams = { id: req.params[0] }
app.render(req, res, actualPage, queryParams)
})
所以我可以将123
与([^-]+)$
匹配,但是我也如何匹配/yc/
部分?
您可以使用此正则表达式捕获并捕获来自group1和group2的值,
^(\/[^\/]+\/).*?(\d+)$
说明:
^
-匹配字符串的开头 (\\/[^\\/]+\\/)
-匹配一个/
随后以外的任何字符/
一个或多个其它随后是/
和在组1捕捉该值 .*?
-允许零个或多个任意字符的可选匹配 (\\d+)$
-匹配一个或多个数字并在组2中捕获它,然后在字符串末尾捕获 只需与^\\/\\w+\\/
交替:
server.get(/([^-]+)$|^\/\w+\//, ...
另请注意,您可能应该在字符串末尾重复至少一个非破折号,否则它可以与末尾的空字符串匹配,例如URL为
/
并且没有其他匹配项,因为字符串末尾(至少)有零个非破折号字符,这可能是不希望的。
除非该小组实际用于某件事,否则请随意将其完全抛弃:
server.get(/[^-]+$|^\/\w+\//, ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.