我有一个包含许多列的 CSV::Table
对象。每列由一定数量的元素组成,这些元素是应该包含数字的字符串。
它可以同时使用"."
或","
作为小数点分隔符,并且不能有任何千位分隔符。
有效示例
- “1023.12”
- “2341,34”
- “1245”
- “1.456”- 请注意,它似乎是没有小数点的千位分隔符,但在这种情况下,它应该被解释为小数点分隔符
- “1,435”- 与上面相同的观察结果
无效示例
- “1,434.12”
- “1.455,19”
- “1.499e5”- 科学记数法
- "a134"- 只是为了确保字符串中没有字符
此外,我需要确保小数分隔符在所有列和行中保持一致;所以我需要提取使用的小数点分隔符(","
或 "."
)。
我可以使用什么正则表达式来检查字符串的有效性并提取小数分隔符以检查整个表的一致性?
最佳答案
我想这会起作用:
/^\d*([.,]?)\d+$/
这也将允许像 .1234
这样的数字,即使它们不常见也是有效的。
要禁止此类数字,请尝试添加另一对括号:
/^\d+(([.,])\d+)?$/
(请注意,现在第二对括号(而不是第一对括号)包含您的小数点分隔符。)
关于ruby-on-rails - 正则表达式检查数字小数点分隔符是否一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15814123/