正则表达式匹配 URL - 字符串末尾的数字,但也匹配字符串开头的字符
Regex to match URL - number at end of string, but also match characters at start of string
我需要匹配以下URL格式
/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/
部分呢?
只需交替使用 ^\/\w+\/
:
server.get(/([^-]+)$|^\/\w+\//, ...
另请注意,您可能应该在字符串末尾之前重复 至少一个 非破折号字符,否则它可以匹配末尾的空字符串,例如 a URL 个
/
没有其他匹配项,因为字符串末尾有(至少)零个非破折号字符,这可能是不可取的。
除非该组实际用于某些用途,否则请完全将其关闭:
server.get(/[^-]+$|^\/\w+\//, ...
您可以使用此正则表达式捕获 group1 和 group2 的值,
^(\/[^\/]+\/).*?(\d+)$
解释:
^
- 匹配字符串的开头
(\/[^\/]+\/)
- 匹配 /
后跟 /
以外的任何字符,一个或多个后跟 /
并在 group1[=34 中捕获此值=]
.*?
- 允许可选匹配零个或多个任意字符
(\d+)$
- 匹配一个或多个数字并将其捕获在 group2 中,后跟字符串结尾
我需要匹配以下URL格式
/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/
部分呢?
只需交替使用 ^\/\w+\/
:
server.get(/([^-]+)$|^\/\w+\//, ...
另请注意,您可能应该在字符串末尾之前重复 至少一个 非破折号字符,否则它可以匹配末尾的空字符串,例如 a URL 个
/
没有其他匹配项,因为字符串末尾有(至少)零个非破折号字符,这可能是不可取的。
除非该组实际用于某些用途,否则请完全将其关闭:
server.get(/[^-]+$|^\/\w+\//, ...
您可以使用此正则表达式捕获 group1 和 group2 的值,
^(\/[^\/]+\/).*?(\d+)$
解释:
^
- 匹配字符串的开头(\/[^\/]+\/)
- 匹配/
后跟/
以外的任何字符,一个或多个后跟/
并在 group1[=34 中捕获此值=].*?
- 允许可选匹配零个或多个任意字符(\d+)$
- 匹配一个或多个数字并将其捕获在 group2 中,后跟字符串结尾