簡體   English   中英

JS:“正則表達式模式”? OR字符串結尾”

[英]JS : regex pattern “? OR end of string”

字符串有兩種不同的類型,我為每個字符串都有一個解決方案,但我正在尋找一個組合的解決方案。 對於這兩者,我都需要輸入id'28ae569'。

使用: /.*\\/.*-(.*)\\?/

使用: /.*\\/.*-(.*)$/解決

所以我想告訴正則表達式是' 或字符串 ' 的結尾

我嘗試使用' \\?|$ ',但是沒有用,在第一種情況下,它給了我整個'28ae569?param1 = category〜%5b715507%7c208524%5d&bi = 1&ps = 200'。 我還嘗試了許多其他組合,但現在正在黑暗中射擊箭。

使用管道( | )交替使用時,需要更加具體。 您可以使用以下正則表達式:

/([a-f\d]{3,})(?:\?|$)/i

([af\\d]{3,})與所需的十六進制字符串匹配。 它還確保該字符串至少3個字符長。 您可以根據自己的要求進行調整,如果不介意捕獲0等單個數字字符串,則可以將量詞更改為+

注意交替符的括號: (?:\\?|$) -它指定它應與?匹配? 字符串的結尾。 (?:...)是一個非捕獲組

使用您以前的正則表達式將意味着:匹配.*\\/.*-(.*)\\? 字符串的結尾,這不是您想要的。

正則演示

匹配連續的數字,后跟? $ ,以輸入字符串中的第一個為准,作為組1。

/([a-fA-F0-9]+)(?:\?|$)/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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