【问题标题】:Regex to match all decimals that come after the 4 first decimals正则表达式匹配前 4 个小数之后的所有小数
【发布时间】:2014-03-14 13:58:07
【问题描述】:

好吧,标题说明了一切。我想找到一个正则表达式,让我可以匹配前 4 个小数之后的剩余小数。 目前我已经弄清楚如何匹配数字和前 4 位小数。

^\d+\.\d{0,4}$

但我想在负数和正数上匹配剩余的数字。

45.46867431 ---> returns 7431.
5.34 ---> returns nothing.
0.0015 ---> returns nothing.
-135.6584312315 ---> returns 312315.
0.008951 returns ---> returns 51.

我需要它是一个正则表达式,因为它是为了清理文件,而不是用脚本直接格式化它。

【问题讨论】:

  • @TimPietzcker 你总是问这个问题并在我们面前回答 OPs 问题
  • 您需要验证字符串吗?即,正则表达式是否应该拒绝匹配字符串foo12345678 中的5678?您可以访问捕获组的内容,还是仅访问整个比赛?
  • 不,我没有使用任何正则表达式引擎,我正在清理在 wsg84 中显示太多小数的 geoJSON 文件,并且我的编辑器是崇高的文本,它允许在带有正则表达式的文件中进行选择...我必须说,我经常询问并尝试回答有关堆栈溢出的问题。而且我从来没有像涉及正则表达式时那样快速得到答复……你们可能是这个社区中反应最激烈的部分。 @aelor 我用过你的,效果很好,我的文件重量除以 2

标签: regex formatting decimal digits


【解决方案1】:
(?<=\.\d{4})\d+

这应该可以解决问题。

在这里演示:http://regex101.com/r/eW8fR6

【讨论】:

    【解决方案2】:

    这将返回点后面的数字和四位数字。

    ^-?\d+\.\d{4}(\d+)$
    

    假设没有像.102123这样的输入

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-10
      • 2015-01-22
      • 2016-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多