gpt4 book ai didi

python - 正则表达式价格匹配

转载 作者:行者123 更新时间:2023-11-28 22:51:07 25 4
gpt4 key购买 nike

我有一个抓取价格的网络爬虫,因为我需要它在字符串中找到以下价格:

  • 762,50
  • 1.843,75

在我的第一个天真的实现中,我没有采用 .考虑并将第一个数字与此正则表达式完美匹配:

re.findall("\d+,\d+", string)[0]

现在我需要匹配这两种情况,我最初的想法是:

re.findall("(\d+.\d+,\d+|\d+,\d+)", string)[0]

有一个想法,即使用 or 运算符可以找到第一个或第二个,但哪个不起作用,有什么建议吗?

最佳答案

无需使用或,只需将第一部分添加为可选参数即可:

(?:\d+\.)?\d+,\d+

(?:\d+\.) 之后的 ? 使其成为可选参数。'?:'表示不捕获这个组,只匹配它。

>>> re.findall(r'(?:\d+\.)?\d+,\d+', '1.843,75 762,50')
['1.843,75', '762,50']

另请注意,您必须转义 .(点),它会匹配除换行符以外的任何字符(请参阅 http://docs.python.org/2/library/re.html#regular-expression-syntax)

关于python - 正则表达式价格匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22018175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com