Python 负数的正则表达式问题
Python regex issue with negative numbers
我正在使用 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)
但是到目前为止还没有成功。
您可以使用相同的正则表达式。
string_str = re.sub(r'[^-\d]', "", string_str)
我正在使用此模式从字符串中提取数字作为列表:
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']
我正在使用 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)
但是到目前为止还没有成功。
您可以使用相同的正则表达式。
string_str = re.sub(r'[^-\d]', "", string_str)
我正在使用此模式从字符串中提取数字作为列表:
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']