带有负数的

时间:2015-10-30 17:06:33

标签: python regex python-2.7 selenium-webdriver robotframework

我正在使用Python和RobotFramework。在我的测试中,我抓取数字(以字符串格式,如$ 486,100,-23,000)并将它们转换为整数进行比较。

我对正数没有任何问题,我的正则表达式删除了美元符号和逗号,并留给我一个数字。但是,使用负数,我的正则表达式也会删除" - ",因此数字不再是负数。需要一个保留所有数字的正则表达式,同时也保留符号。

在Selenium IDE中,此正则表达式正常工作:replace(/[^\\d-]/g, '')

但是,由于我在机器人中使用python,这就是我的代码:

string_str = re.sub(r'\D', "", string_str) 

我环顾四周试图修改它:

string_str = re.sub(r'-?\D', "", string_str)

string_str = re.sub(r'[-]?\D', "", string_str)
但到目前为止还没有成功。

2 个答案:

答案 0 :(得分:1)

您可以使用相同的正则表达式。

string_str = re.sub(r'[^-\d]', "", string_str)

答案 1 :(得分:0)

我正在使用这种模式从字符串中提取数字作为列表:

text = 'fa lkjaf 3 889898 -9.09808 * 2.8999 +809003.22 -19 =2-3  =33-77-9.3'
import re
lt = re.findall('-?\d+\.?\d*',text)
print(lt)

['3','889898','-9.09808','2.8999','809003.22','-19','2','-3','33','-77','- 9.3']