【问题标题】:What does float range inside square braces "[ ]" in regex mean? [duplicate]正则表达式中方括号“[]”内的浮点范围是什么意思? [复制]
【发布时间】:2017-02-19 16:10:34
【问题描述】:

我想了解这个 regex([0.00-9.00]+) 在 python 中的作用。我理解这一点的方式是它会匹配任何0 . 0 0-9 . 0 0,所以这里的零是多余的。由于里面有一个.,它应该匹配任何字符,并且完整的匹配应该是一个非空的字符序列,不一定是数字,但它的行为不是这样。我错过了什么吗?

Few examples of how it behaves

【问题讨论】:

标签: python regex


【解决方案1】:

零确实是多余的。 . 仅匹配文字 .,因为它是 字符类 的一部分,[...] 语法。那里没有特别的意义。

所以字符类可以简化为:

[0-9.]+

并且仍然匹配完全相同的输入。

该正则表达式文本的作者似乎将字符类中的- 功能与数字范围功能混淆了;正则表达式中没有这样的东西。您必须匹配总体上可以读取为实数的单个字符。以下实际上会匹配这些数字:

(?<!\d)\d\.\d\d(?!\d)

其中否定的后视和前瞻确保此文本周围没有更多位数字。 \d[0-9] 的简写。

this regex101 demo

【讨论】:

  • 这就解释了。感谢您的回答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-06
  • 2015-07-21
  • 2014-09-02
  • 2016-06-10
  • 2011-12-31
相关资源
最近更新 更多