正则表达式仅匹配美元符号、金钱、小数

新手上路,请多包涵

正则表达式

y = [X: $1.19] [Y: $5.29] [Z 999/1000]
x = re.findall(r"\$[^ ]+", y)

火柴

$1.19]
$5.29]

预期匹配

$1.19
$5.29


如何调整我的正则表达式以匹配可以包含小数且必须包含美元符号的金额? - 这些值可以改变。例如:

 $x.xx # 'x' representing a number

原文由 Enigmatic 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

只需用右括号替换否定字符类中的空格:

 In [37]: x = re.findall(r"\$[^\]]+", y)

In [38]: x
Out[38]: ['$1.19', '$5.29']

原文由 Mazdak 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以简单地使用以下正则表达式进行搜索。

正则 表达式: \$\d+(?:\.\d+)?

解释:

\$ :确保美元符号后跟

\d+ :更多或一位数

(?:\.\d+)? : 可选的小数部分

Regex101 演示

原文由 Rahul 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题