Regex 正则表达式:在表达式中提取数字
假设我有以下表达式:Regex 正则表达式:在表达式中提取数字,regex,python-3.x,Regex,Python 3.x,假设我有以下表达式: "1+3x+52-9-45x+x" 我的目标是提取所有常量: [1,+52,-9] 我尝试过使用Python: re.findall("[+-]?\d+","1+3x+52-9-45x+x") 结果是: [1'、'+3'、'+52'、'-9'、'-45'] 这是不正确的,因为还提取了x的系数 我还尝试: re.findall("[+-]?\d+[+-]?","1+3x+52-9-45x+x") 但是仍然不起作用。试试这个正则表达式: (?:[+-])?\b\d+\b
"1+3x+52-9-45x+x"
我的目标是提取所有常量:
[1,+52,-9]
我尝试过使用Python:
re.findall("[+-]?\d+","1+3x+52-9-45x+x")
结果是:
[1'、'+3'、'+52'、'-9'、'-45']
这是不正确的,因为还提取了x的系数
我还尝试:
re.findall("[+-]?\d+[+-]?","1+3x+52-9-45x+x")
但是仍然不起作用。试试这个正则表达式:
(?:[+-])?\b\d+\b
或
解释(对于第一个正则表达式):
匹配(?:[+-])
或+
(如果需要,请添加更多运算符)-
使?
或+
可选-
在两个非单词之间匹配一个或多个数字(因此不包括系数)\b\d+\b
匹配(?:[+-])
或+
(如果需要,请添加更多运算符)-
使?
或+
可选-
匹配一个或多个数字(贪婪),后面紧跟一个\d+(?=[+-])
或+
或一个空格,或者如果它是行尾。如果需要,可以添加更多运算符-
(?:[+-])?\d+(?=[\s+-]|$)