Java正则表达式,以*结尾

时间:2018-09-11 23:34:29

标签: java regex

我试图用Java编写正则表达式以匹配可以选择带有*的字母数字字符串。但是,如果包含*,则它必须位于该字符串的末尾。它只能包含一个*

以下输入应返回true

abcd

abcd*

*

如下所示,输入应返回false,因为它包含*而不是该字符串的末尾

abc*d
abcd**

我尝试编写如下所示的Java程序,但是它不起作用

public static void main(String[] a){
    String pattern = "[a-zA-Z0-9]+[\\*]$";
    String test = "abcd*";
    System.out.println(test.matches(pattern));
}

它为true返回abcd*,但不返回abcd*

请让我知道如何解决此正则表达式。谢谢

1 个答案:

答案 0 :(得分:3)

您必须使用?指定结尾的星号是可选的。

[a-zA-Z0-9]*[*]?