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
  • 在字符串末尾或字符串末尾的换行符(如果有)之前断言位置(换行)
    $

为什么
vamshi pendota
正确而
vam shi
不正确?更新了问题,请立即检查。如果我在回答中添加了允许数字的新内容,谢谢,我如何将其更改为也允许数字?对我来说,
^[a-z_]+
似乎不正确,因为它将允许
\u v_a_m_s_h_i
@vamsi:我已将其修改为包括数字。@zx81:我明白你的意思。话虽如此,OP没有具体说明,因此我提供了符合要求的最简单答案。