我需要一個正則表達式來趕......在以下兩種格式Python的正則表達式中綴計算器
() + - */
OR
數...
xxx.xxx
IE 3.14159
xxx
IE 42
我有...
re.findall('[+-/*//()]|\d+(\.\d+)?', noWhitespaces)
下面的表達式...
(2.0 + 2.0)/1
...是...產生
['', '.0', '', '.0', '', '', '']
,我不知道爲什麼。
我...在xxx
格式,IE 1
re.findall('[+-/*//()]|\d+\.\d+', noWhitespaces)
其中在xxx.xxx
格式IE 2.0
和運營商對數字的工作,但不是數字。
編輯:確切的代碼...
noWhitespaces = re.sub(r'\s+', '', s)
print(noWhitespaces)
tokens = re.findall(r'[-+/*//()]|\d+(\.\d+)?', noWhitespaces)
print(tokens)
請將'-'放在字符類的開頭或末尾。否則它會被視爲從'+'到'/'的字符的_range_,其中包含',','-'和'.'。如果您使用了[RegEx101](http://regex101.com/),那麼您會立即看到這一點。 – Xufox
[正則表達式只允許字母數字,逗號,連字符,下劃線和分號]的可能重複(http://stackoverflow.com/questions/9333325/regex-to-only-allow-alphanumeric-comma-hyphen-underscore-and-分號) – Xufox
@Xufox不,它不是。 –