python - 这个 re 表达式有什么区别?
问题描述
我正在测试 re 表达式,书中的例子是:
if re.search('^X\S*: [0-9.]+', line):
但是用我的表达我得到了同样的结果:
if re.search('^X\S*: [0-9]', line):
有什么区别?,我看不到什么?谢谢你。
解决方案
这是两个完全不同的正则表达式:
^X\S*: [0-9.]+
^X\S*: [0-9]
并排比较会产生差异:[0-9.]+
vs [0-9]
。
第二个将只匹配一位数字。
而第一个将匹配一个数字和点。
因此,对于以下示例,第二个将失败:
X: 1.23
X: 123.3213.23131
以及数字+点的任何其他组合。
相同的结果仅适用于以下情况:
X: 1
推荐阅读
- c - Understanding memory maps
- scala - Difference between instantiating something from the class and from the companion object
- html - Trying to pull the Name and/or ID of the code below, but can only pull the Job-Base-Cost
- python-3.x - 无法再次调用的 Python 线程
- asp.net - Bootstrap 4 固定右侧边栏
- java - 无法从华氏 f 转换为摄氏度 c
- python - 当我一个接一个地执行多个插入时,pymongo 给出重复键错误
- qt - 隐藏时如何阻止项目影响父项的大小?
- python - python 请求无法解码 utf-8 API 响应
- rust - 将工作代码提取到单独的函数中时的生命周期问题