什么是Java Regex用于检查"必须包含英文字母和&amp ;;可以包含数字/点/连字符/空格"?

时间:2014-03-20 02:26:18

标签: 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 Regex用于检查"必须包含英文字母&可以包含数字/点/连字符/空格"?

3 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式:

^(?=.*[A-Za-z]+)[A-Za-z0-9\s\.-]+$

第一部分检查至少有一个带有先行断言的字母。第二个是你允许的一组字符。

答案 1 :(得分:1)

您可以使用lookahead assertion

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

答案 2 :(得分:-1)

[A-ZA-Z] {1} [0-9 \ S .-] *

{m}表示租约m次匹配。

试一试。