标签: 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")
但仍然没有工作。
答案 0 :(得分:3)
试试这个正则表达式:
(?:[+-])?\b\d+\b
Demo
OR
(?:[+-])?\d+(?=[\s+-]|$)
解释(对于第一个正则表达式):
(?:[+-])
+
-
?
\b\d+\b
解释(针对第二个正则表达式):
\d+(?=[+-])