正则表达式在java中包含负数
在这个程序中,我将输入解析为整数,我似乎无法接受负数,并且尝试了一系列正则表达式。我可以通过删除&&^得到正整数没有问题-这只是我遇到问题的负整数 例如:正则表达式在java中包含负数,java,Java,在这个程序中,我将输入解析为整数,我似乎无法接受负数,并且尝试了一系列正则表达式。我可以通过删除&&^得到正整数没有问题-这只是我遇到问题的负整数 例如: input = console.readLine("?> ").split("\\D+&&^-"); 知道我做错了什么吗?提前谢谢你的帮助 样本输入: -7*4 输出: -7和4应存储在字符串数组中。&&不是正则表达式中的“and”运算符。我想你是想用[^0-9-]+,对吗 我建议匹配而不是拆分。但是,这两种方法都不能
input = console.readLine("?> ").split("\\D+&&^-");
知道我做错了什么吗?提前谢谢你的帮助
样本输入:
-7*4
输出:
-7和4应存储在字符串数组中。
&&
不是正则表达式中的“and”运算符。我想你是想用[^0-9-]+
,对吗
我建议匹配而不是拆分。但是,这两种方法都不能为您解决
-12-34
的棘手问题。拆分将为您提供一个不可解析的单个数字。与-?\d+
匹配将得到两个数字,中间没有任何数字(但可以将其视为默认的+
。&&
是而不是正则表达式中的“and”运算符。我想你是想用[^0-9-]+
,对吗
我建议匹配而不是拆分。但是,这两种方法都不能为您解决
-12-34
的棘手问题。拆分将为您提供一个不可解析的单个数字。与-?\d+
匹配将得到两个数字,中间没有任何数字(但可以将其视为默认值)。-\d*
应得到一个负整数。如果您需要更复杂的数据,例如十进制数,请查看。-\d*
应该会为您提供一个负整数。如果您需要更复杂的东西,例如十进制数,请查看。预期的输入和输出是什么?输入是字符串,输出是一个int。我已经阅读了好几次正则表达式教程,但我仍然不知道怎么做。是的,它应该是一个and运算符。我没有打算停止。我只是现在完全没有耐心,以为人们不会犹豫要帮我。预期的输入和输出是什么?输入是一个字符串,输出是一个整数。我已经读了好几遍正则表达式教程了,但我还是不知道怎么做。是的,它应该是一个and运算符。我没有打算停止。我只是现在完全没有耐心,以为人们不会那么犹豫去帮我。我已经一遍又一遍地读了它们。看起来&&是一个and操作符@LightyearBuzz,恐怕你读错了一页又一页。字符类(注意这里的“字符”)与regexp中的“and”无关。您可能想要[+-]?
,但即使在这种情况下,“无符号”的概念也不是字符类的一部分。@Anon Christ,请尝试编译,我说过当删除&&^-时,它可以与正数一起工作。我不知道您是在搞乱我还是不懂Java\d和\d完全不同。“我在哪里没有”?好的,那么你是想在[^0-9-]
处拆分?这是另一个选项。请参阅更新的答复。无论如何,你最后只阅读了一部分称为“字符类”的正则表达式“,没有先了解初选。我已经读了一遍又一遍。看起来&&是一个and操作符@LightyearBuzz,恐怕你读错了一页又一页。字符类(注意这里的“字符”)与regexp中的“and”无关。您可能想要[+-]?
,但即使在这种情况下,“无符号”的概念也不是字符类的一部分。@Anon Christ,请尝试编译,我说过当删除&&^-时,它可以与正数一起工作。我不知道您是在搞乱我还是不懂Java\d和\d完全不同。“我在哪里没有”?好的,那么你是想在[^0-9-]
处拆分?这是另一个选项。请参阅更新的答复。无论如何,你最后只阅读了一部分称为“字符类”的正则表达式“,而不首先理解原色。它还将匹配字符串中的-
,如hey ho
它还将匹配字符串中的-
,如hey ho