用于字母数字和单个空格的正则表达式

时间:2019-03-11 06:59:17

标签: regex

如何在字母+数字单词之间允许使用空格?

我使用的正则表达式是"^(?![0-9]*$)[a-zA-Z0-9]+$"

  1. 禁止在开头输入数字
  2. 允许一个或多个字母字符后的字母和数字

示例:

允许

  • Google
  • Car 401,当前不允许!
  • Car401

禁止

  • 012 Avenue
  • Central Park
  • 34134

测试:https://regex101.com/r/StK21o/2/

2 个答案:

答案 0 :(得分:0)

该表达式应该起作用。

^[a-zA-Z][a-zA-Z0-9]*(?:\ [a-zA-Z0-9]+)?$

规则

  1. 第一个字符必须以字母开头
  2. 从第二个字符开始允许使用字母数字字符
  3. 字符串中有1个可选空格(不以空格结尾也不以空格开头)

表达说明

  • ^表示字符串的开头
  • [a-zA-Z]匹配一个字母
  • [a-zA-Z0-9]匹配零个或多个字母数字字符
  • (?:\ [a-zA-Z0-9]+)?允许以空格开头的可选字符串组,后跟至少1个字母数字字符
  • $表示字符串的结尾

https://regex101.com/r/3IHN6j/4

答案 1 :(得分:0)

您可以使用此正则表达式,该正则表达式使用否定的前瞻性来丢弃以数字开头的字符串,否则将捕获只能用一个空格分隔的文本,

^(?!\d)[a-zA-Z\d]+(?: [a-zA-Z\d]+)*$

正则表达式的解释:

  • ^-字符串的开头
  • (?!\d)-如果字符串以数字开头,则拒绝匹配项
  • [a-zA-Z\d]+-捕获一个或多个字母数字字符
  • (?: [a-zA-Z\d]+)*-进一步捕获零个或多个以空格分隔的字母数字字符
  • $-字符串结尾

Demo