[英]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.