字母表,数字,空格和下划线的正则表达式

时间:2014-05-30 11:10:44

标签: regex

如何创建一个只匹配字母和数字的正则表达式,每个单词和下划线之间有一个空格?

好示例:

Vamshi1

vamshi_pendota

vamshi pendota    

错误示例:

vam    shi1

vam_shi      pendota

3 个答案:

答案 0 :(得分:1)

您应该使用像http://regex101.com/

这样的正则表达式测试站点

您可以输入示例,并使用快速参考来帮助您构建正确的正则表达式。

答案 1 :(得分:1)

使用这个简单的正则表达式:

^[a-zA-Z0-9]+(?:[ _][a-zA-Z0-9]+)?$

请参阅demo

大写的选项2

如果只有每个单词的第一个字母可以是大写字母,请使用

^[A-Z]?[a-z0-9]+(?:[ _][A-Z]?[a-z0-9]+)?$

含义

^[a-zA-Z0-9]+(?:[ _][a-zA-Z0-9]+)?$
  • 在字符串^
  • 的开头处断言位置
  • 匹配以下列表中的单个字符[a-zA-Z0-9]+
    • 在一次和无限次之间,尽可能多次,根据需要回馈(贪婪)+
    • “a”和“z”(区分大小写)a-z
    • 之间范围内的字符
    • “A”和“Z”(区分大小写)A-Z
    • 之间范围内的字符
    • “0”和“9”0-9
    • 之间范围内的字符
  • 匹配(?:[ _][a-zA-Z0-9]+)?下面的正则表达式
    • 在零到一次之间,尽可能多次,根据需要回馈(贪婪)?
    • 匹配“_”[ _]
    • 列表中的单个字符
    • 匹配以下列表中的单个字符[a-zA-Z0-9]+
      • 在一次和无限次之间,尽可能多次,根据需要回馈(贪婪)+
      • “a”和“z”(区分大小写)a-z
      • 之间范围内的字符
      • “A”和“Z”(区分大小写)A-Z
      • 之间范围内的字符
      • “0”和“9”0-9
      • 之间范围内的字符
  • 断言字符串末尾的位置,或字符串末尾的换行符之前的位置(如果有的话)(换行符)$

答案 2 :(得分:0)

除非你提供任何进一步的信息,否则我怀疑你所追求的是通过正则表达式无法实现的。

正则表达式用于匹配字符串的模式。在您的情况下,您想要匹配的Good和Bad案例从模式角度看是相同的。

假设Vamshi是一个有效的名称,但Vam shi不是(尽管你的语言都有字母数字和一个空格),我怀疑你需要查看字典实现而不是只是一个正则表达式。

编辑:看到你的变化之后,这样的事情对你有用:^[a-z0-9_]+(\s[a-z0-9_]+)*$。正则表达式应该期望字符串以一个或多个小写字母和/或下划线开头,可选地后跟一个空格和更多文本。

相关问题