Java 方法。匹配字符串false,如何使匹配项为true
我试图检查字符串是否以点和2或3个字符结尾。 我使用的正则表达式是: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(
[.][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]
(它包括下划线)。