java - Java 正则表达式需要进一步的帮助

标签 java regex

我最近asked for and received help关于将匹配最多包含两个星号的字符串的 Java 正则表达式,星号可以是第一个或最后一个字符,或两者兼而有之。这是我接受的答案:

^\\*?[^*]+\\*?$

当然,现在要求已经改变,我需要进一步限制字符串,使其只能包含小写或大写字母、空格或星号通配符。不允许使用数字或标点符号(* 除外)。通配符定位的限制仍然如上所述。

所以这些字符串将被匹配:

foo
f oo
*Foo
FOO *
*foo*
*F o o*

并且这些字符串不会:

*
**
**foo
*f*oo
1
*1
_
foo1*
_foo
%foo^

我花了很长时间试图解决这个问题,但一直没能成功,即使使用 RegexBuddy .我不太喜欢在 Stack Overflow 上问这样一个具体的问题,但我自己无法找到解决方案。

提前致谢。

最佳答案

这应该有效:

^\\*?[a-zA-Z ]+\\*?$

关于java - Java 正则表达式需要进一步的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6716926/

相关文章:

java - 在 if/else 语句中调用 AsyncTask?- android

javascript - 使用 angularJs ng-Pattern 进行 10 位正则表达式验证

javascript - 如何修改我的下面的正则表达式?

regex - 让所有正则表达式匹配出现在列表框中,VB.NET

java - 使用列表成员将 JDBC 结果集转换为 java POJO

java - 定义 spring bean destroy 方法顺序

使用 regex 的 javascript 正则表达式用多个 - 字符替换字符串

javascript - 当非 ASCII 字符具有 5 位以上的 Unicode 代码时,将其替换为其 Unicode 代码点

java - postgres服务器拒绝连接到heroku

java - RMI - 在服务器上创建线程来服务客户端