Python Regex 查找 1000 美元或更多的金额

标签 python regex

我正在尝试编写一个正则表达式来搜索 $1000.00 或更多且前面有 - 的美元金额。 $ 也应该是可选的。

这是我目前所拥有的,但它并没有像我预期的那样工作:(

\-\$?(((\d{1,3},)+\d{3})|\d+)\.\d{2}

但它在值 -$73.75 上触发,而该值本应被忽略。任何指针/想法将不胜感激:)

最佳答案

您可以简单地检查.之前的值是否至少为4位:

-\$?\d{4,}\.\d{2}

请注意,您不需要对 - 进行转义,它不是正则表达式中的元字符(在字符类之外)。

-        # Match a hyphen
\$?      # An optional $ sign
\d{4,}   # 4 or more digits
\.       # A dot
\d{2}    # 2 digits after dot

如果你的数字中可以有分隔符(,),那么你可以这样使用:

-\$?[\d,]*\d,\d{3}\.\d{2}

这将确保数字后跟逗号和 3 位数字。在此之前,允许任意数量的数字和逗号是相当宽松的。

虽然这当然不是一个非常严格的正则表达式。但同样,创建一个将很困难。您最好避免使用正则表达式来根据本地化、格式和一些最小金额来验证金额。

关于Python Regex 查找 1000 美元或更多的金额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18734194/

相关文章:

python - Matplotlib NavigationToolbar : Advanced figure options?

Python 正则表达式 - 从路径中提取目录

Java Pattern 不匹配 RegEx

python - Django:显示名字和姓氏

python - 如何中止 AST 访问者并保持原始节点不变?

python - POST 上没有 'Access-Control-Allow-Origin' header (Flask API)

python - GeoDjango Distance() 相关模型注解

javascript - 正则表达式与字符集中的 $ 不匹配

java - Java 不区分大小写的正则表达式值

regex - 正则表达式在 vb6 中的使用