[英]Match floats in Ruby with regexp
我需要從Ruby中的字符串中提取浮點數,但是如果我嘗試使用普通符號提取它,我當然不會獲取“,”前面的數字。
"3,25 år -".match((\d+)\s?år\s?-)[1] => # "25"
有沒有一種簡單的方法來獲取整數?
"3,25 år -".match(/([\d,]+)\s?år\s?-/)[1] => # "3,25"
注意你的代碼也有另一個錯誤。 你錯過了正則表達式分隔符。 它應該是
match(/.../)
不
match(...)
您缺少正則表達式的正斜杠/
周圍。
除此之外,這將返回你想要的:
"3,25 år -".match(/(\d+(?:,\d+)?)\s?år\s?-/)[1] => # "3,25"
作為旁注,上面將匹配正整數和浮點數。 如果您確定您將始終擁有浮動,請將其簡化為:
"3,25 år -".match(/(\d+,\d+)\s?år\s?-/)[1] => # "3,25"
最后,我建議你習慣於[0-9]
表示數字而不是\\d
, 為這里准備好了 ,所以最后試試這個:
"3,25 år -".match(/([0-9]+,[0-9]+)\s?år\s?-/)[1] => # "3,25"
PS。 我建議你避免[\\d,]+
解決方案,因為這個正則表達式也可以匹配非數字,例如它將匹配1,,1
或1,
或,1
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.