在Python中创建与正则表达式的匹配

在Python中创建与正则表达式的匹配,python,regex,Python,Regex,我目前正在使用正则表达式来匹配某一行,例如: (.0025 = 625 dollars per contract) 我有一个正则表达式,我用它来表示类似的表达式,它完成了工作。但是,我想知道是否有更好的实施方案: new_string = re.search(r'.*?\([^$]*?([\$|\d][^)]* per contract)\)', cell) 我知道我可以改变它寻找美元符号的位置,但还有其他东西吗 如果你也能解释一下你的正则表达式,那会很有帮助。如果你总是想收集价格,你可以这

我目前正在使用正则表达式来匹配某一行,例如:

(.0025 = 625 dollars per contract)
我有一个正则表达式,我用它来表示类似的表达式,它完成了工作。但是,我想知道是否有更好的实施方案:

new_string = re.search(r'.*?\([^$]*?([\$|\d][^)]* per contract)\)', cell)
我知道我可以改变它寻找美元符号的位置,但还有其他东西吗


如果你也能解释一下你的正则表达式,那会很有帮助。

如果你总是想收集价格,你可以这样做:

regex_string = r'= (.*? per contract)'
这抓住了:

'625 dollars per contract'
它所做的一切就是在等号(及其后面的空格)和单词“每个合同”之间做任何事情。因为你的正则表达式假设单词“每个合同”总是存在的,所以我的正则表达式也是如此

如果您只想要价格,您可以这样做:

>>>regex_string = r'= (.*?) per contract'
>>>matchobj = re.search(regex_string, "(.0025 = 625 dollars per contract)")
>>>matchobj.groups()
('625 dollars',)
如果你需要一些(有用的)帮助,你必须准确地解释你在寻找什么。示例:“美元”这个词总是存在吗?你的最终目标是什么?你到底想提取什么。