【问题标题】:Regex with integer and decimals and dot and sign带有整数和小数以及点和符号的正则表达式
【发布时间】:2014-04-09 10:52:48
【问题描述】:

我正在尝试验证具有以下允许条件的字符串

字符串可以是带点(.)的有符号或无符号数字。例如

10 或 .3 或 1。或 1.1 或 +5 或 -5 或 +.3 或 -1。等等

下面的链接几乎是一个接近的答案,但在“+.3”上失败了 Regular Expression for whole numbers and integers?

"[+-]?(?<!\.)\b[0-9]+\b(?!\.[0-9])"

【问题讨论】:

  • 请坚持一种语言标签;使用 3 等于向不同的社区发送垃圾邮件。
  • 看起来我得到了解决方案 [+-]?\d+(\.\d*)?|\.\d|[+-]?(\.\d)

标签: python regex


【解决方案1】:

一种解决方案可能是:

[+-]?(((\d+\.?)|(\.?\d+))\d*)

这里[+-]?检查开头的可选符号,(\d+\.?)(\.?\d+)将捕获数字后跟..后跟数字(并涵盖包含.的情况) , 最后\d* 负责处理尾随数字(如果有的话)。

【讨论】:

    【解决方案2】:

    如果你想排除像 000000.12 这样的字符串,我相信[+-]?(0|[1-9]\d*)?(\.[0-9]+)?

    【讨论】:

    • 这个正则表达式将只捕获+,只捕获-,甚至是一个空字符串。
    • @0605002 谢谢,你是对的。这是固定版本[+-]?(((0|[1-9]\d*)(\.\d*)?)|(\.\d+))
    • 这个从'-0123.45'捕获'-0'
    猜你喜欢
    • 1970-01-01
    • 2019-12-05
    • 2017-02-03
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 1970-01-01
    相关资源
    最近更新 更多