【发布时间】:2016-02-13 06:17:19
【问题描述】:
我需要一个正则表达式来捕捉...
( ) + - * /
或
以下两种格式的数字...
xxx.xxx
IE 3.14159
xxx
IE 42
我有……
re.findall('[+-/*//()]|\d+(\.\d+)?', noWhitespaces)
下面的表达式...
(2.0 + 2.0) / 1
...正在生成...
['', '.0', '', '.0', '', '', '']
我不知道为什么。
我有...
re.findall('[+-/*//()]|\d+\.\d+', noWhitespaces)
适用于 xxx.xxx 格式的数字 IE 2.0 和运算符,但不适用于 xxx 格式的数字,即 1。
编辑:确切的代码...
noWhitespaces = re.sub(r'\s+', '', s)
print(noWhitespaces)
tokens = re.findall(r'[-+/*//()]|\d+(\.\d+)?', noWhitespaces)
print(tokens)
【问题讨论】:
-
请将
-放在字符类的开头或结尾。否则,它将被视为从+到/的范围 字符,其中包括,、-和.。如果您使用 RegEx101,您会立即看到这些内容。