正则表达式:以欧元提取金额

Regex: Extract amounts in Euro

我需要一个 Python 正则表达式来提取以欧元为单位的金额。例如:

我的灵感来自 。基于此,我构建了以下正则表达式:

^((\d[\d.\s,]*)(?:\s(?:euro|€|Euro))|\d)$

如果你想看更多的例子,请看demo。正则表达式尚未完成。我面临的问题是它与完整字符串不匹配。

也许你可以帮我解决这个问题?我不是正则表达式专家!

您可以使用

^(?:€ *)?(\d(?:[. ,]*\d)*)(?: (?:[eE]uro|€))? *$

注意:如果您针对独立字符串进行测试,您可以将所有文字 space 替换为 \s(任何一个白色 space)或 \s+(一个或更白spaces).

详情:

  • ^ - 字符串开头
  • (?:€ *)? - 和零个或多个 spaces
  • 的可选序列
  • (\d(?:[. ,]*\d)*)
  • (?: (?:[eE]uro|€))? - space 的可选序列(在其后添加 * 以使其匹配零个或多个 space),euro , Euro
  • * - 零个或多个 spaces
  • $ - 字符串结尾。

参见regex demo