Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式匹配字符串末尾的URL-number,但也匹配字符串开头的字符_Javascript_Regex_Reactjs_Express_Next.js - Fatal编程技术网

Javascript 正则表达式匹配字符串末尾的URL-number,但也匹配字符串开头的字符

Javascript 正则表达式匹配字符串末尾的URL-number,但也匹配字符串开头的字符,javascript,regex,reactjs,express,next.js,Javascript,Regex,Reactjs,Express,Next.js,我需要匹配以下URL格式 /yc/leroy-jenkins-123 所以我需要匹配/yc/part和123 当其/leroy-jenkins-123与以下内容匹配时,我能够匹配URL server.get(/([^-]*)$/, (req, res) => { const actualPage = '/profile' const queryParams = { id: req.params[0] } app.render(req, res, actualPage

我需要匹配以下URL格式

/yc/leroy-jenkins-123

所以我需要匹配/yc/part和123

当其/leroy-jenkins-123与以下内容匹配时,我能够匹配URL

server.get(/([^-]*)$/, (req, res) => {
    const actualPage = '/profile'
    const queryParams = { id: req.params[0] }
    app.render(req, res, actualPage, queryParams)
})
因此,我可以将123与[^-]+$匹配,但如何也与/yc/部分匹配?

只需使用^\/\w+\/:

还请注意,您可能应该在字符串结尾之前至少重复一个非破折号字符,否则它可以匹配结尾处的空字符串,例如URL

/
其他任何字符都不匹配,因为字符串末尾至少有零个非破折号字符,这可能是不可取的

除非团队真的被用于某些事情,否则可以完全忽略它:

server.get(/[^-]+$|^\/\w+\//, ...
只需使用^\/\w+\/:

还请注意,您可能应该在字符串结尾之前至少重复一个非破折号字符,否则它可以匹配结尾处的空字符串,例如URL

/
其他任何字符都不匹配,因为字符串末尾至少有零个非破折号字符,这可能是不可取的

除非团队真的被用于某些事情,否则可以完全忽略它:

server.get(/[^-]+$|^\/\w+\//, ...

您可以使用此正则表达式从group1和group2获取和捕获值

^(\/[^\/]+\/).*?(\d+)$
说明:

^-匹配字符串的开头 \/[^\/]+\/-匹配一个/后接除/以外的任何字符,一个或多个字符后接一个/并在group1中捕获此值 .*? - 允许零个或多个任意字符的可选匹配 \d+$-匹配一个或多个数字,并在group2中捕获它,后跟字符串结尾
您可以使用此正则表达式从group1和group2获取和捕获值

^(\/[^\/]+\/).*?(\d+)$
说明:

^-匹配字符串的开头 \/[^\/]+\/-匹配一个/后接除/以外的任何字符,一个或多个字符后接一个/并在group1中捕获此值 .*? - 允许零个或多个任意字符的可选匹配 \d+$-匹配一个或多个数字,并在group2中捕获它,后跟字符串结尾
解释得很好的答案++解释得很好的答案++