Regex 字母、数字、空格和下划线的正则表达式
如何创建只匹配字母和数字、每个单词和下划线之间有一个空格的正则表达式 好例子:Regex 字母、数字、空格和下划线的正则表达式,regex,Regex,如何创建只匹配字母和数字、每个单词和下划线之间有一个空格的正则表达式 好例子: Vamshi1 vamshi_pendota vamshi pendota vam shi1 vam_shi pendota 坏例子: Vamshi1 vamshi_pendota vamshi pendota vam shi1 vam_shi pendota 您应该使用一个regex测试站点,如 您可以输入示例,并使用快速参考帮助您构造正确的正则表
Vamshi1
vamshi_pendota
vamshi pendota
vam shi1
vam_shi pendota
坏例子:
Vamshi1
vamshi_pendota
vamshi pendota
vam shi1
vam_shi pendota
您应该使用一个regex测试站点,如
您可以输入示例,并使用快速参考帮助您构造正确的正则表达式。除非您提供任何进一步的信息,否则我怀疑您所追求的是无法通过正则表达式实现的 正则表达式用于匹配字符串的模式。在您的案例中,您想要匹配的好案例和坏案例从模式的角度来看是相同的 假设
Vamshi
在您的语言中是一个有效的名称,但Vam shi
在您的语言中不是(尽管两者都有字母数字字符和一个空格),我怀疑您需要查看字典实现,而不仅仅是正则表达式实现
编辑:看到您的更改后,类似这样的内容应该对您有用:
^[a-z0-9+(\s[a-z0-9+)*$
。正则表达式应该期望字符串以一个或多个小写字母和/或下划线开头,可选后跟空格和更多文本。使用此简单正则表达式:
^[a-zA-Z0-9]+(?:[ _][a-zA-Z0-9]+)?$
看
资本化的选项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]+)?
- 在0到1次之间,尽可能多次,根据需要回馈(贪婪)
?
- 匹配列表中的单个字符“\ucode>[\u]
- 匹配下面列表中的单个字符
[a-zA-Z0-9]+
- 在一次和无限次之间,尽可能多次,根据需要回馈(贪婪)
+
- 介于“A”和“z”之间的字符(区分大小写)
A-z
- 介于“A”和“Z”之间的字符(区分大小写)
A-Z
- 介于“0”和“9”之间的字符
0-9
- 在一次和无限次之间,尽可能多次,根据需要回馈(贪婪)
- 在0到1次之间,尽可能多次,根据需要回馈(贪婪)
- 在字符串末尾或字符串末尾的换行符(如果有)之前断言位置(换行)
$
vamshi pendota
正确而vam shi
不正确?更新了问题,请立即检查。如果我在回答中添加了允许数字的新内容,谢谢,我如何将其更改为也允许数字?对我来说,^[a-z_]+
似乎不正确,因为它将允许\u v_a_m_s_h_i
@vamsi:我已将其修改为包括数字。@zx81:我明白你的意思。话虽如此,OP没有具体说明,因此我提供了符合要求的最简单答案。