^[A-Za-Z ][A-Za-z0-9 ]* 正则表达式?

Posted

技术标签:

【中文标题】^[A-Za-Z ][A-Za-z0-9 ]* 正则表达式?【英文标题】:^[A-Za-Z ][A-Za-z0-9 ]* regular expression? 【发布时间】:2010-12-11 19:47:55 【问题描述】:

正则表达式^[A-Za-Z ][A-Za-z0-9 ]* 描述“第一个字母应该是字母,其余字母可能是字母数字”。但是我如何也允许特殊字符?当我输入“C#”时,它会引发错误。

如何输入特殊字符,首字母应为字母?

【问题讨论】:

这也应该被标记为正则表达式 @joemoe:我为你标记了“正则表达式”。 请注意,键入时,它是“第一个字符应该是字母或空格...” 【参考方案1】:

目前给出的很多答案都很好,但你必须清楚地定义你想要的究竟是什么。

如果您想要一个字母字符后跟任意数量的非空白字符(请注意,它还包括数字!)那么您应该使用这个:

^[A-Za-z]\S*$

如果您只想包含字母数字字符和某些符号,请使用:

^[A-Za-z][A-Za-z0-9!@#$%^&*]*$

您的原始问题看起来您也尝试包含空格字符,因此您可能想要这样的内容:

^[A-Za-z ][A-Za-z0-9!@#$%^&* ]*$

这就是我的最终答案!

我建议花一些时间来了解更多关于正则表达式的知识。它们是自切片面包以来最棒的东西!

试试这个syntax reference 页面(这个网站总体来说非常好)。

【讨论】:

@Peter Di Cecco:你忘了 0-9。【参考方案2】:

此表达式将强制第一个字母为字母,其余字符为字母数字或以下任何特殊字符:@,#,%,&,*

^[A-Za-z][A-Za-z0-9@#%&*]*$

【讨论】:

@Surya sasidhar:好的,我修改了正则表达式以包含 @,%,&,*。 @Surya sasidhar:你想允许空格吗?标题中的原始正则表达式似乎允许空格。 @Xinus:不。 * 在字符类中时不需要转义。 如何在其中添加空格?【参考方案3】:

试试这个:

^[A-Za-z ].*

【讨论】:

乔莫先生不作为表达【参考方案4】:

怎么样

^[A-Za-z]\S*

一个字母后跟 0 个或多个非空格字符(将包括所有特殊符号)。

【讨论】:

【参考方案5】:

首先必须是字母,然后目标字符串中不允许使用点。 下面是代码。

        string input = "A_aaA";

        // B
        // The regular expression we use to match
        Regex r1 = new Regex("^[A-Za-z][^.]*$"); //[\t\0x0020] tab and spaces.

        // C
        // Match the input and write results
        Match match = r1.Match(input);
        if (match.Success)
        
            Console.WriteLine("Valid: 0", match.Value);

        
        else
        
            Console.WriteLine("Not Match");
        


        Console.ReadLine();

【讨论】:

【参考方案6】:

此表达式将检查第一个字母是否为字母,其余字符是否为字母数字或以下任何特殊字符:@,#,%,&,

^[A-Za-z][A-Za-z0-9@#%&\*]*$

【讨论】:

【参考方案7】:

这个表达式只得到数字

    If Regex.IsMatch(mystring, "^[A-Za-z ].*|\s") Then
        MessageBox.Show("please fill the box", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
       
    ElseIf (mystring = "") Then
        MessageBox.Show("please fill the box", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
      
    End If

【讨论】:

【参考方案8】:
^[A-Za-z](\W|\w)*

(\W|\w) 将确保后面的每个字母都是单词(\w)或非单词(\W

您也可以使用.* 代替(\W|\w)*,其中. 表示绝对类似于(\w|\W) 的任何东西

【讨论】:

这与“^[A-Za-z].*”甚至“^[A-Za-z]”有何不同? @Xinus: 字符类 [\W|\w] 表示单词字符,|字符或非单词字符。如果您将方括号更改为括号,则表示您声称的内容。但它仍然可以更简单、更优雅地表达。 @Asaph:我对正则表达式没有太多经验...我认为您说的听起来合乎逻辑,我将其更改为括号... @paxdiablo: "^[A-Za-z]" 只会匹配第一个字符,而不是整个单词。 “^[A-Za-z].*” 可以正常工作,正如 Xinus 在编辑后所说的那样。 @Xinus 这个答案可能不正确。初始正则表达式匹配一个有效的 C 标识符。不幸的是,此解决方案将匹配“FOO\n\n\n”以及“C#”。

以上是关于^[A-Za-Z ][A-Za-z0-9 ]* 正则表达式?的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式 (^|[^A-Za-z0-9])Trump([^A-Za-z0-9]|$) 含义

从英国邮政编码获取内向和外向代码

^[A-Za-Z ][A-Za-z0-9 ]* 正则表达式?

修正域名正则

JavaScript输入表单数据正则验证规则

email 校验