Python正则表达式:包含数字的子内容,数字可以有千位分隔符和小数

Python正则表达式:包含数字的子内容,数字可以有千位分隔符和小数,python,regex,Python,Regex,我有以下文本。我想收集所有包含数字的子内容(从逗号或句点到逗号或句点)。我已成功创建了以下正则表达式,用于收集数字及其后面的部分,但由于我的数字可以包含逗号或句点,因此我不知道如何才能抓住它前面的单词。我想用粗体显示包含部分的句子: 关于本次发行的完成,我们将 与猎户座资本结构签订远期购买协议 Solutions UK Limited,或OrION,我们发起人的附属公司, 猎户座将承诺向我们购买10000000件 远期购买单位,,或由其选择,总计最多为 30000000个远期购买单位,每个单位由

我有以下文本。我想收集所有包含数字的子内容(从逗号或句点到逗号或句点)。我已成功创建了以下正则表达式,用于收集数字及其后面的部分,但由于我的数字可以包含逗号或句点,因此我不知道如何才能抓住它前面的单词。我想用粗体显示包含部分的句子:

关于本次发行的完成,我们将 与猎户座资本结构签订远期购买协议 Solutions UK Limited,或OrION,我们发起人的附属公司, 猎户座将承诺向我们购买10000000件 远期购买单位,或由其选择,总计最多为 30000000个远期购买单位,每个单位由一个A类组成 普通股或远期购买股,以及 购买一股A类普通股的权证,或远期购买 认购权证,每单位10.00美元,或总额100000000美元, 或由猎户座选择,总额不超过300000000美元 私募发行将与我们的 初始企业合并

我想收集的是:

["pursuant to which OrION will commit that it will purchase from us 10,000,000 forward purchase units",
"or at its option up to an aggregate maximum of 30,000,000 forward purchase units", "for $10.00 per unit", "or an aggregate amount of $100,000,000", "or at OrION’s option up to an aggregate amount of $300,000,000"]
我编写的正则表达式当前获取数字和后面的部分,直到下一个逗号或句点

[0-9]{1,2}([,.][0-9]{1,2})?.*?[\.,]
我如何收集句子的一部分(以句点或逗号开始),以及可以包含小数点或千位分隔符的数字,然后收集句子的一部分,直到下一个逗号或句点

编辑:anubhava和bb1都给出了正确的解决方案。阿努巴瓦完全按照我的要求解决了这个问题,这是正确的答案。然而,bb1为必然会发生的事情做准备(我没有想到),所以最后我使用了他的答案,但将anubhava标记为给出解决方案的人,因为这正是我所问的解决方案


编辑2:anubhava更新了他的答案,因此它解决了与bb1-s相同的问题。

您可以将此正则表达式与环顾断言一起使用:


(?您可以将此正则表达式与环顾断言一起使用:


(?如果字符串段中有一个数字用逗号或句点括起来,anubhava的解决方案效果很好,但不包括有多个数字的情况,例如

"Therefore, this costs $10,000 and that costs $20,000 per item."
如果有帮助,这里有一个处理此类情况的版本:

(?<=[,.])(?:[^,.]*?\d+(?:[,.]\d+)*[^,.]*?)+(?=[,.])

(?如果字符串段中有一个数字用逗号或句点括起来,anubhava的解决方案效果很好,但不包括有多个数字的情况,例如

"Therefore, this costs $10,000 and that costs $20,000 per item."
如果有帮助,这里有一个处理此类情况的版本:

(?<=[,.])(?:[^,.]*?\d+(?:[,.]\d+)*[^,.]*?)+(?=[,.])

(?是的,这正是我所要求的。谢谢!看到你对其他答案的评论,我意识到你可能有每句话都有多个数字的情况。因此,我也稍微更新了我的答案,以解决这个问题。谢谢,我知道我可能没有说明,但更新后会确保每个人都复制更多稍后给出有力的答案。是的,这正是我所要求的。谢谢!看到您对其他答案的评论,我意识到您可能会遇到每句话有多个数字的情况。因此,我也略微更新了我的答案,以解决该情况。谢谢,我知道我可能没有说明,但更新后将确保你稍后会复制更有力的答案。这实际上是我以前没有考虑过的。我还不太熟悉stackoverflow海关,最后我将anubhavas答案标记为解决方案,因为它正是解决所述问题的方法。然而,最后我使用的是你的答案,因为它为解决问题做好了准备一些必然会发生的事情,我没有想到。我会在问题中陈述。这实际上是我以前没有考虑过的事情。我还不太熟悉stackoverflow海关,最后我将anubhavas的答案标记为解决方案,因为它正是所述的解决问题的方法。但最终是你我使用的rs是因为它为必然发生的事情做准备,我没有想到。我会在问题中说明这一点。错误的重复。这个问题是不同的,重复回答中甚至没有一个答案是当前问题的解决方案。错误的重复。这个问题是不同的,重复回答中甚至没有一个答案是cur的解决方案租金问题。