簡體   English   中英

正則表達式以匹配URL-字符串末尾的數字,但也匹配字符串開頭的字符

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM