java - 用于检查 "Must contain English Alphabets & Can contain either Digit/Dot/Hyphen/Space"的 Java 正则表达式是什么?

标签 java regex validation

我想检查名称字段是否满足这些要求:

-必须包含英文字母 -可以包含数字/点/连字符/空格

LuckStar12  : valid
Batman : valid
LuckStar-12 : valid
LuckStar.1 - 2 : valid
Luck Star 5 : valid

21212 : not valid cos it doesn't contain any English Alphabets
autó : not valid cos it contain "ó"
----- : not valid cos it doesn't contain any English Alphabets

这个“[a-zA-Z0-9\\s.-]+”是检查名称字段是否有属于这些英文字母/数字/点/连字符/空格的字符。但是,它并不强制“必须包含英文字母”。

我尝试了 (?=.*[a-zA-Z])[0-9\\s.-] 但不起作用。

所以

用于检查“必须包含英文字母并且可以包含数字/点/连字符/空格”的 Java 正则表达式是什么?

最佳答案

您可以使用lookahead assertion :

^(?=.*[a-zA-Z])[a-zA-Z0-9. -]*$

关于java - 用于检查 "Must contain English Alphabets & Can contain either Digit/Dot/Hyphen/Space"的 Java 正则表达式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22522256/

相关文章:

java - 使用 PreparedStatements 时 SQL Server 死锁

java - 分离的 API 和实现项目结构

regex - 正则表达式,xsd 中的模式匹配

javascript - Jquery 名称验证问题(仅限字符)

java - 检查java中URL的有效性。以免因 404 错误而崩溃

java - 没有消息的套接字超时异常可能会出现什么情况?

java - Akka 集群加入 DNS 负载均衡

javascript - Python 和 Javascript 正则表达式有什么不同?

php - 使用 preg_match 识别强密码

Angular 7,验证 FormArray 内动态创建的一组复选框