我有這樣一個字符串如下:這個數字提取正則表達式有什麼問題?
<br><b>224h/15.45 verbuchte Stunden</b>
我想提取的數量和創建了以下正則表達式:
([0-9]\.?[0-9]{0,2})h\s\/\s([0-9]\.?[0-9]{0,2})
但前面字符串這給了我的號碼224和15而不是15.45。 這個正則表達式有什麼問題?
我有這樣一個字符串如下:這個數字提取正則表達式有什麼問題?
<br><b>224h/15.45 verbuchte Stunden</b>
我想提取的數量和創建了以下正則表達式:
([0-9]\.?[0-9]{0,2})h\s\/\s([0-9]\.?[0-9]{0,2})
但前面字符串這給了我的號碼224和15而不是15.45。 這個正則表達式有什麼問題?
因爲在點之前只允許有一個數字。
試試這個,我用點號前的{1,2}
作爲量詞,把它改成你的需要。可能+
將是更好的選擇,它允許一個或多個。
([0-9]\.?[0-9]{0,2})h\s\/\s([0-9]{1,2}\.?[0-9]{0,2})
一個更好的正則表達式可能是這個
([0-9]+(?:\.[0-9]{1,2})?)h\s*\/\s*([0-9]+(?:\.[0-9]{1,2})?)
我在這裏做了完整的小數部分可選的,需要至少一個,並在點和最低前一個後最多2位。
如果您正則表達式引擎支持的字符類可能是一點點緊湊這樣的:
(\d{1,2}\.?\d{0,2})h\s/\s(\d{1,2}\.?\d{0,2})
\d
是[0-9]