gpt4 book ai didi

java - 模式匹配数字/运算符

转载 作者:行者123 更新时间:2023-11-29 06:18:54 25 4
gpt4 key购买 nike

嘿,我一直在努力弄清楚为什么这个正则表达式没有正确匹配。


List l_operators = Arrays.asList(Pattern.compile(" (\\d+)").split(rtString.trim()));
输入字符串为 "12+22+3"

我得到的输出是-- [,+,+]

在列表的开头有一个不应该出现的匹配项?我真的看不到它,我可以使用一些洞察力。谢谢。

最佳答案

嗯,从技术上讲,第一个分隔符(第一个数字序列)前面有一个空字符串。如果你有一行 CSV,例如 abc,def,ghi 和另一行 ,jkl,mno 你显然想知道第二个字符串是空字符串。 因此在大多数情况下这种行为是可取的。

对于您的特定情况,您需要手动处理它,或以某种方式改进您的正则表达式。例如这样:

Pattern p = Pattern.compile("\\d+");
Matcher m = p.matcher(rtString);
if (m.find()) {
List l_operators = Arrays.asList(p.split(rtString.substring(m.end()).trim()));
// ...
}

然而,理想情况下,您应该为这些类型的字符串使用解析器。例如,您不能仅使用正则表达式来处理表达式中的括号。

关于java - 模式匹配数字/运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4013318/

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