我需要正则表达式的帮助以允许带有字符的数字

时间:2015-04-01 13:05:01

标签: java regex

条件:

123           not valid
123 A         valid
abc123        valid
abc123Ab      valid

我必须使用正则表达式强制字符和数字吗?

2 个答案:

答案 0 :(得分:1)

这将匹配以可选的数字集开头的任何字符串,后跟空格,字母和数字的组合。但它仍匹配123_(即123 followed by a space`)

^\d*[\sa-zA-Z0-9]+$

以下内容将检查您的字符串中是否至少有一个字母与可选数字,空格和字母相结合。

[a-zA-Z\s\d]*[a-zA-Z]+?[a-zA-Z\s\d]*
  • [a-zA-Z\s\d]匹配[]中的单个字符。
  • 量词*:在零和无限次之间,尽可能多次,根据需要回馈[贪婪]
  • 量词:+?在一次和无限次之间,尽可能少的时间,根据需要扩展[懒惰]

答案 1 :(得分:0)

(([a-zA-Z\s])*(\d{1,})([a-zA-Z\s]){1,}|([a-zA-Z\s]){1,}(\d{1,})([a-zA-Z\s])*)

此表达式的第一部分将确保字符串可以在没有任何字母的情况下启动,但必须至少包含1位数字,并且应以1或多个字母结尾。第二部分将确保字符串可以以至少1个字母开头,然后是至少1个数字,然后是0或任意数量的字母。