【问题标题】:Extract Numerical Portion From String从字符串中提取数字部分
【发布时间】:2015-02-18 19:05:44
【问题描述】:

我有许多具有以下任一形式的字符串

  1. 空字符串
  2. 0
  3. 一个字符串,包含一个数字(前面可能有一个 - 符号并且可能有一个小数点),后跟一个空格,然后是一些其他字符。例如-234.44 ABC

    1. 情况1.我想提取空字符串
    2. 情况2我想提取0
    3. 在案例 3 中,我想提取数字部分。在示例中为-234.44

这个正则表达式是什么?

顺便说一句,我们永远不会有这样的字符串

0000 ABC
00.3 ABC
+1.7 ABC
.9 ABC
-

【问题讨论】:

  • 你能展示你解决问题的尝试吗?这将有助于我们提供适当的解释。另外,请指定您使用的正则表达式实现/宿主语言或环境。
  • 这些数字总是在开头吗?
  • @anubhava 仅适用于案例 2 和 3。

标签: javascript regex


【解决方案1】:
([+-]?\d*(?:\.\d+)?)

这个简单的正则表达式应该可以为您完成。请参阅演示。

https://regex101.com/r/jG2wO4/9

如果行首没有其他内容,也可以使用^([+-]?\d*(?:\.\d+)?)

使用

^(?=.*\d)(?:[+-](?=\d|\.\d))?\d*(?:\.\d+)?|^$

如果您的输入中有+-。请参阅演示。

https://regex101.com/r/jG2wO4/11

【讨论】:

  • 这是不正确的。它也将只匹配 +-
【解决方案2】:

你可以使用这个正则表达式:

^([+-]?\d+(?:\.\d+)?\b|$)

RegEx Demo

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-06
  • 2021-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多