如何创建一个只匹配字母和数字的正则表达式,每个单词和下划线之间有一个空格?
好示例:
Vamshi1
vamshi_pendota
vamshi pendota
错误示例:
vam shi1
vam_shi pendota
答案 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
0-9
(?:[ _][a-zA-Z0-9]+)?
下面的正则表达式
?
[ _]
[a-zA-Z0-9]+
+
a-z
A-Z
0-9
$
答案 2 :(得分:0)
除非你提供任何进一步的信息,否则我怀疑你所追求的是通过正则表达式无法实现的。
正则表达式用于匹配字符串的模式。在您的情况下,您想要匹配的Good和Bad案例从模式角度看是相同的。
假设Vamshi
是一个有效的名称,但Vam shi
不是(尽管你的语言都有字母数字和一个空格),我怀疑你需要查看字典实现而不是只是一个正则表达式。
编辑:看到你的变化之后,这样的事情对你有用:^[a-z0-9_]+(\s[a-z0-9_]+)*$
。正则表达式应该期望字符串以一个或多个小写字母和/或下划线开头,可选地后跟一个空格和更多文本。