我试图理解python中这个正则表达式([0.00-9.00]+
)的作用。我理解这一点的方式是它匹配任何0 . 0 0-9 . 0 0
,所以这里的零是多余的。由于里面有.
,它应匹配任何字符,完整匹配应该是非空字符序列,不一定是数字,但它不会那样。我错过了什么吗?
答案 0 :(得分:6)
零确实是多余的。 .
仅匹配文字.
,因为它是字符类的一部分,即[...]
语法。它没有特别的意义。
因此字符类可以简化为:
[0-9.]+
仍然匹配完全相同的输入。
该正则表达式文本的作者似乎混淆了具有数字范围特征的字符类中的-
特征;正则表达式中没有这样的东西。您必须匹配聚合中可以作为实数读取的单个字符。以下实际上会匹配这些数字:
(?<!\d)\d\.\d\d(?!\d)
负面的后视和前瞻确保此文本周围没有更多位数。 \d
是此处[0-9]
的简写。