我正在遍歷包含兩個 24 小時時間戳但沒有前導 0 的字串。一個字串看起來像這樣
"FooBar Examplestring 4:34 - 12:30"
我知道將 24 小時時間戳與可選的前導零匹配的正則運算式是
^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
我不明白的是,這是我在這里缺少的一些基本 RegEx 知識,是我如何從第一個字串中獲取兩個時間戳作為匹配項。
順便說一句,我正在使用 javascript。這是示例代碼:https : //jsfiddle.net/7dbfeL21/1
uj5u.com熱心網友回復:
使用match正則運算式模式,\d{1,2}:\d{2}我們可以嘗試:
var input = "FooBar Examplestring 4:34 - 12:30";
var matches = input.match(/\d{1,2}:\d{2}/g);
console.log(matches);
該模式\d{1,2}:\d{2}是您使用的簡化。但鑒于您輸入中的任何其他內容都不太可能與此匹配,您可能會發現這是一種更簡單的方法。
uj5u.com熱心網友回復:
你必須洗掉錨點^和$和使用單詞邊界來代替。您可以縮短模式,使第一個零成為可選。
\b(?:0?[0-9]|1[0-9]|2[0-3]):[0-5][0-9]\b
正則運算式演示
let regex = /\b(?:0?[0-9]|1[0-9]|2[0-3]):[0-5][0-9]\b/g;
let str = "FooBar Samplestring 2:30 - 14:34";
var matches = str.match(regex);
console.log(matches);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/359762.html
標籤:javascript 正则表达式
上一篇:如何使用異步管道解決角度錯誤?
