正则表达式中方括号“[]”内的浮点范围是啥意思? [复制]
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。
【讨论】:
这就解释了。感谢您的回答!以上是关于正则表达式中方括号“[]”内的浮点范围是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章