Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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 方法。匹配字符串false,如何使匹配项为true_Java_Regex - Fatal编程技术网

Java 方法。匹配字符串false,如何使匹配项为true

Java 方法。匹配字符串false,如何使匹配项为true,java,regex,Java,Regex,我试图检查字符串是否以点和2或3个字符结尾。 我使用的正则表达式是: [.][a-z0-9A-Z][a-z0-9A-Z][a-z0-9A-Z]$ 字符串示例:qsdgfdsdh.nfo 它应该返回true,但总是返回false 你能帮我吗 谢谢函数将模式应用于整个字符串。因此,以下措施应该有效: String input = "qsdgfdssdh.nfo"; if (input.matches(".*\\.[0-9A-Za-z]{3}")) { System.out.println(

我试图检查字符串是否以点和2或3个字符结尾。 我使用的正则表达式是:

[.][a-z0-9A-Z][a-z0-9A-Z][a-z0-9A-Z]$
字符串示例:
qsdgfdsdh.nfo

它应该返回true,但总是返回false

你能帮我吗

谢谢

函数将模式应用于整个字符串。因此,以下措施应该有效:

String input = "qsdgfdssdh.nfo";
if (input.matches(".*\\.[0-9A-Za-z]{3}")) {
    System.out.println("match");
}
如果您想知道当前模式与
String#matches
匹配的是什么,那么它将匹配
.nfo

String input = ".nfo";
if (input.matches("\\.[0-9A-Za-z]{3}")) {
    System.out.println("match");
}

@ErnestKiwele:OP非常清楚需要什么:“如果字符串以点和2或3个字符结尾”。在许多解释下,该模式实际上与字符串匹配。对于知道答案的人来说,答案是明确的(Java的
匹配
锚定整个字符串),但这并没有改变OP的问题是完全适定的事实;没有理由羞辱他们。投票结果是一致的,但请注意,
\w
不同于OP的
[A-Za-z0-9]
(它包括下划线)。