【发布时间】:2016-01-31 04:36:57
【问题描述】:
我正在使用 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)
但到目前为止还没有成功。
【问题讨论】:
-
您说要“抓取”数字,但实际上是在替换字符串中的字符。您的真正目标是进行字符串替换还是获取数字?您是否需要担心格式奇怪的字符串,例如 -10-20 或 4.5.6?
-
我正在从网页上的表格中存储文本,“数字”是我需要转换为整数进行比较的字符串。它们都是美元金额,没有小数位(美分)。
标签: python regex python-2.7 selenium-webdriver robotframework