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