method .matches String false,如何匹配true

时间:2018-05-12 06:07:07

标签: java regex

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

[.][a-z0-9A-Z][a-z0-9A-Z][a-z0-9A-Z]$

字符串示例:qsdgfdssdh.nfo

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

你能帮助我吗?

由于

1 个答案:

答案 0 :(得分:1)

String#matches函数将模式应用于整个字符串。所以以下内容应该有效:

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");
}

Demo