java - 以 * 结尾的 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));
}
它返回true
但abcd*
不返回abcd
and*
请让我知道如何修复这个正则表达式。谢谢
解决方案
您必须使用 ? 指定尾随星号是可选的。
[a-zA-Z0-9]*[*]?
推荐阅读
- javascript - 如何获取特定标签的标题?
- javascript - Angular 表单组:找不到具有未指定名称属性的控件
- mysql - mysql 5.6.10:更新前触发器仅适用于常量?
- mongodb - 在 MongoDB Spring Data 中使用多个方面
- app-inventor - App Inventor WebViewer 无法全屏打开
- python - 使用 ctypes/cffi 解决循环共享对象依赖关系
- go - 使用 mgo 的无效内存地址或 nil 指针取消引用
- javascript - 运行 React App 时找不到模块“@babel/plugin-transform-react-jsx-source”
- jenkins - Jenkins Slave 在“空闲延迟”超时不工作之前关闭
- gradle - 在 Heroku 成功的机器人上部署不起作用 - JDA