如何仅使用Java正则表达式,matches方法匹配字母?

import java.util.regex.Pattern;

class HowEasy {

public boolean matches(String regex) {

System.out.println(Pattern.matches(regex, "abcABC "));

return Pattern.matches(regex, "abcABC");

}

public static void main(String[] args) {

HowEasy words = new HowEasy();

words.matches("[a-zA-Z]");

}

}

输出为False。我要去哪里错了?我也想检查一个单词是否仅包含字母,并且是否可以以单个句点结尾。正则表达式是什么?

即“ abc”“ abc”。有效,但“ abc ..”无效。

我可以使用indexOf()方法来解决它,但是我想知道是否可以使用单个正则表达式。

回答:

"[a-zA-Z]"仅匹配一个字符。要匹配多个字符,请使用"[a-zA-Z]+"

由于点对于任何角色都是小丑,因此您必须屏蔽它:"abc\."要使点成为可选,您需要一个问号: "abc\.?"

如果在代码中将Pattern作为文字常量编写,则必须屏蔽反斜杠:

System.out.println ("abc".matches ("abc\\.?"));

System.out.println ("abc.".matches ("abc\\.?"));

System.out.println ("abc..".matches ("abc\\.?"));

结合两种模式:

System.out.println ("abc.".matches ("[a-zA-Z]+\\.?"));

\ w通常比a-zA-Z更合适,因为它捕获äöüßø等外来字符:

System.out.println ("abc.".matches ("\\w+\\.?"));

以上是 如何仅使用Java正则表达式,matches方法匹配字母? 的全部内容, 来源链接: utcz.com/qa/416012.html

回到顶部