正则表达式中方括号“[]”内的浮点范围是啥意思? [复制]

Posted

技术标签:

【中文标题】正则表达式中方括号“[]”内的浮点范围是啥意思? [复制]【英文标题】: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

【问题讨论】:

不,字符范围内的. 不匹配“任何”字符,仅匹配文字点。 regex101.com/r/BSZI6b/1 另见***.com/questions/19976018/…和***.com/questions/21929693/decyphering-a-simple-regex/… 【参考方案1】:

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

所以字符类可以简化为:

[0-9.]+

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

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

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

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

见this regex101 demo。

【讨论】:

这就解释了。感谢您的回答!

以上是关于正则表达式中方括号“[]”内的浮点范围是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

正则中的[中

参考 - 这个正则表达式是啥意思?

参考 - 这个正则表达式是啥意思?

数据处理正则表达式中的括号

var regex = /^[\d\,\.]*$/;这个正则是啥含义

这个“(function());”,括号内的函数,在javascript中是啥意思? [复制]