我试图用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
和*
请让我知道如何解决此正则表达式。谢谢
答案 0 :(得分:3)
您必须使用?指定结尾的星号是可选的。
[a-zA-Z0-9]*[*]?