gpt4 book ai didi

java - 为什么我的字符串按正则表达式分割不起作用?

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

我有一个输入字符串,例如“5+3”。现在我想用正则表达式分割它:

String[] rawTokens = input.split("\\+|\\-|\\*|/|\\d+");

标记数组现在应该是 [5, +, 3],但它是空的。

有什么问题吗?

最佳答案

问题有三个:

  1. 与传递给 split 的模式匹配的输入将被消耗(丢弃),并且匹配之间剩下的内容将以数组形式返回
  2. 您的模式与输入的每个字符匹配,因此它全部被消耗(丢弃),只留下空白(零长度字符串)来填充数组
  3. 从返回的数组中默默地截断尾随空白

那么,如何修复...

您需要一个不匹配任何输入字符的模式,因为您不希望消耗任何内容。相反,您需要在要提取的术语之间进行匹配。您需要环顾四周:

String[] rawTokens = input.split("\\b");

此模式匹配“单词边界”(在本例中是在非数字和数字之间,反之亦然)。

参见live demo产生你想要的输出。

关于java - 为什么我的字符串按正则表达式分割不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30330609/

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