簡體   English   中英

正則表達式-匹配從特定字符到所有非數字的所有數字

[英]Regex - Match all numbers from a specific character until any non digit

我想從下面的文本中獲取4654052。 數字從--? ? 可以是任何非數字字符。

here-is-some-string--4654052?day=2018-10-17

嘗試了 \\D.*|\\D+但是它希望文本以數字開頭。

如果您希望文本以數字開頭,則可以使用捕獲組 試試這個表達式:

--(\d+)\D

\\d+代表“一個或多個”數字,而\\D代表非數字。

您可以在sed使用類似這樣的東西:

 $ echo "here-is-some-string--4654052?day=2018-10-17" | sed "s/^.*--\([0-9][0-9]*\)?.*/\1/g"

 Output:  4654052

它通過在--之后, ?之前為具有1個或多個數字的數字創建后向引用來工作? 標志。

在JavaScript中,您可以使用以下正則表達式:

/[-]{2}([0-9]+)/

它通過匹配2個hyphen字符,然后匹配一個或多個任意number的組來工作。 它創建一個具有匹配項的array ,其中可以通過索引訪問捕獲的組。

要訪問網上論壇(包含所需的號碼),可以執行以下操作:

var text = 'here-is-some-string--4654052?day=2018-10-17';
var matches= text.match(/[-]{2}([0-9]+)/);
if (matches && matches.length > 1)
{
    var number = matches[1];
}

暫無
暫無

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

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