gpt4 book ai didi

java - 为什么这个 Java 正则表达式会失败?

转载 作者:太空宇宙 更新时间:2023-11-04 13:38:36 24 4
gpt4 key购买 nike

在我的 Java 代码中,我想匹配如下字符串:

1m
112m
10million
9Million

我还想匹配“100k”之类的东西。以下适用于“k”,但不适用于“m”。这是为什么?

if (moneyExp.matches("[-+]?\\d+[kK]")) {
String modMoney = moneyExp.replaceAll("[^\\d.]", "");
modMoney += "000";
mw.hashX.remove("Amount");
mw.doublePut("Amount", modMoney, 1);
tagMap = mw.hashX;
} else if (money.matches("[-+]?\\d+[mM]")) {
String modMoney = moneyExp.replaceAll("[^\\d.]", "");
modMoney += "000000";
mw.hashX.remove("Amount");
mw.doublePut("Amount", modMoney, 1);
tagMap = mw.hashX;
}

最佳答案

您的代码仅适用于 100k、34m 等,因为 match() 需要匹配整个字符串才能返回 true。所以你可以尝试:

moneyExp.matches("\\b[-+]?\\d+[kK](\\w+)+?\\b"); // for k
moneyExp.matches("\\b[-+]?\\d+[mM](\\w)+?\\b"); // for m

关于java - 为什么这个 Java 正则表达式会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31437746/

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