Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java正则表达式中的部分匹配_Java - Fatal编程技术网

Java正则表达式中的部分匹配

Java正则表达式中的部分匹配,java,Java,我编写了以下代码以仅匹配整数。然而,当给出像3.4这样的十进制数时,它与数字3匹配。如果一个数字不是像3.4那样的整数,有没有办法匹配整个字符串并以其他方式拒绝 Pattern e = Pattern.compile([0-9]+); Matcher m = e.matcher("3.4"); 您的问题非常令人困惑,但您可能希望使用以下方法来匹配带或不带小数的数字 Pattern e = Pattern.compile("\\d+(?:\\.\\d+)?"); @安德烈亚斯:你说得对-谢谢,

我编写了以下代码以仅匹配整数。然而,当给出像3.4这样的十进制数时,它与数字3匹配。如果一个数字不是像3.4那样的整数,有没有办法匹配整个字符串并以其他方式拒绝

Pattern e = Pattern.compile([0-9]+);
Matcher m = e.matcher("3.4");

您的问题非常令人困惑,但您可能希望使用以下方法来匹配带或不带小数的数字

Pattern e = Pattern.compile("\\d+(?:\\.\\d+)?");

@安德烈亚斯:你说得对-谢谢,编辑在我的回答中-希望你没问题。@baao谢谢你的回答。但我只想匹配整数。baao的回答是:我只想匹配整数。这似乎与问题中的示例代码相矛盾,但这只是意味着问题的表述非常糟糕。当心!当你还没有调用
m.matches()
时,你怎么知道它匹配呢?我很确定他没有调用m.matches()。也许OP使用的是find()或group()?@Jeutnarg我猜OP认为非null的
m
表示它匹配。--不能是
group()
,因为如果未调用
matches()
find()
,则会引发
IllegalStateException
。@Michael如果要使用
find()
,则需要添加锚定:
“^[0-9]+$”
。在您的情况下,我建议您使用
matches()