我想检查名称字段是否符合这些要求:
- 必须包含英文字母 - 可以包含数字/点/连字符/空格
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用于检查"必须包含英文字母&可以包含数字/点/连字符/空格"?
答案 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次匹配。
试一试。