Java以*结尾的正则表达式

标签 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));
}

对于 abcd* 返回 true,但对于 abcd* 则不返回

请告诉我如何修复此正则表达式。谢谢

最佳答案

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

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

关于Java以*结尾的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52285478/

相关文章:

java - Hibernate.createBlob(file.getInputStream()) 的替代方法

java - 使用 Java 从证书别名到包含私钥的 PEM 文件

java - 如何在 RichFaces 中对数据表中的行进行排序?

regex - 在 PowerShell 中仅打印非空行

javascript - 正则表达式匹配域内的子文件夹

regex - 在 Regex 上调用 Bool 无法按文档工作

java - 如何从 POJO 的 meta-inf 文件夹中读取属性文件

java - 如何在 Java 8 中强制转换 Stream.empty()?

c# - 正则表达式查找以特定字符开头的单词

Java正则表达式与斜杠匹配