簡體   English   中英

使用regexp匹配Ruby中的浮動

[英]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,,11,,1

暫無
暫無

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

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