繁体   English   中英

Python Regex贪婪边界

[英]Python Regex greedy boundaries

我有一个

import re

s = """
/* comments */
vector<CWaypoint> Vparam;     // comment
int cValue=2049;                // comment
double param=0.01;              // comment
"""

exp = re.compile(r"(?:\s|\b)(.+?)=(.+?)\b;")
print(exp.findall(s))

我的预期输出是

[(cValue,2049), (param,0.01)]

但是为什么我在变量名之前得到数据类型,如下所示

[('int cValue', '2049'), ('double param', '0.01')]

为什么边界不贪心也不起作用

请注意, \\s还将匹配换行符,而.+将匹配任何字符(包括空格)。

我建议您在=前使用[^\\s=]+

exp = re.compile(r"([^\s=]+)=(.+?);")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM