首页 > 解决方案 > 以 * 结尾的 Java 正则表达式

问题描述

我正在尝试在 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));
}

它返回trueabcd*不返回abcdand*

请让我知道如何修复这个正则表达式。谢谢

标签: javaregex

解决方案


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

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

推荐阅读