[英]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.