gpt4 book ai didi

java - 正则表达式:如何不匹配几个字母

转载 作者:行者123 更新时间:2023-11-30 11:37:05 26 4
gpt4 key购买 nike

我有以下字符串:SEE ATTACHED ADDENDUM TO HUD-1194,520.07

在该字符串中是 HUD-1,然后是 194,520.07。我想要的是 194,520.07 部分。

我编写了以下正则表达式来提取该值:

[^D\-1](?:-|\()?\$?(?:\d{1,3}[ ,]?)*(?:\.\d+)\)?

然而,这会拉出:94,520.07

我知道这与这部分有关:[^D\-1]“吃掉”了许多 1。有什么想法可以阻止它在 HUD-1 中出现的第一个之后“吃掉”1 吗?

更新:

所有其他内容的原因是,如果 HUD-1 之后的值是金额,我也只想匹配。该正则表达式的其余部分试图确定可以写入金额的所有不同方式

最佳答案

为什么不是像这样简单的东西:

.*HUD\-1(.*+)

好的,根据您更新的问题,我认为您需要更加严格。尝试将 [^D\-1] 更改为 (?:HUD\-1)?。就其值(value)而言,您的货币 RegEx 是宽松的,允许输入如下:

001 001 .31412341234123

您可能会考虑在那里重新发明轮子,我相信您可以通过 Google 快速找到货币 RegEx。否则,我还建议在其末尾使用 $ 锚定您的 RegEx。

关于java - 正则表达式:如何不匹配几个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14203439/

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