正则表达式:以欧元提取金额
Regex: Extract amounts in Euro
我需要一个 Python 正则表达式来提取以欧元为单位的金额。例如:
- 99 欧元
- 99.99 欧元
- 99,99 欧元
- 100
我的灵感来自 。基于此,我构建了以下正则表达式:
^((\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。
我需要一个 Python 正则表达式来提取以欧元为单位的金额。例如:
- 99 欧元
- 99.99 欧元
- 99,99 欧元
- 100
我的灵感来自
^((\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。