ruby-on-rails - 正则表达式检查数字小数点分隔符是否一致

标签 ruby-on-rails ruby regex csv

我有一个包含许多列的 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/

相关文章:

ruby-on-rails - 如何匹配和删除 ruby​​ 文件中的整行?

jquery - blueimp jquery 文件 uploader 中的 IE 6 JSON 响应处理

ruby-on-rails - Ruby/Rails 图像处理库

sql - Rails has_many 清除方法

ruby - Git 用 CRLF 替换了我所有的 LF - 我该如何解决这个问题?

regex - 将字符串与给定字符的正好 2 个匹配? (例如 2 个文字句点)

ruby-on-rails - 在助手规范中测试当前用户

ruby-on-rails - Ruby:未初始化的未定义方法

java - 检查字符串是否仅包含特定数字(例如 "111")

java - 替换java中字符串中的任何非ascii字符