C# 正则表达式,应以字母数字开头,但不能以空格开头

匿名
2024-03-29T06:08:29.7133333+00:00

我正在尝试只将字母数字作为第一个字符的正则表达式,但是当我使用 [A-za-z0-9] 时,它也以空格为有效,如何在正则表达式 C# 中避免将空格作为第一个字符。

请帮忙。

以下是一些有效和无效的条件(忽略开始和结束“ )。

无效场景:

“!test” “@test ” “测试”

有效方案:

Test@3 测试!12a 7test#1 67899 测试

Note:此问题总结整理于: C# regex that should start with alpha numeric but not with space

开发人员技术 .NET 其他
开发人员技术 ASP.NET 其他
开发人员技术 C#
0 个注释 无注释
{count} 票

接受的答案
  1. Hui Liu-MSFT 48,676 信誉分 Microsoft 外部员工
    2024-03-29T07:38:19.3+00:00

    正则表达式可以这样写:

    复制

    var pattern = "^[a-zA-Z0-9]\\S+$";  
    

    下面是我测试的演示,你可以参考它。

    复制

        class Program  
        {  
            static void Main(string[] args)  
            {  
                var pattern = "^[a-zA-Z0-9]\\S+$";  
                Console.WriteLine("Invalid scenarios:");  
                Console.WriteLine("!test:{0}", Regex.Match("!test", pattern).Success);  
                Console.WriteLine("@Test:{0}", Regex.Match("@Test", pattern).Success);  
                Console.WriteLine(" Test:{0}", Regex.Match(" Test", pattern).Success);  
                Console.WriteLine("\n\nValid scenarios:");  
                Console.WriteLine("Test@3:{0}", Regex.Match("Test@3", pattern).Success);  
                Console.WriteLine("test!12a:{0}", Regex.Match("test!12a", pattern).Success);  
                Console.WriteLine("7test#1:{0}", Regex.Match("7test#1", pattern).Success);  
                Console.WriteLine("67899:{0}", Regex.Match("67899", pattern).Success);  
                Console.WriteLine("Test:{0}", Regex.Match("Test", pattern).Success);  
                Console.ReadLine();  
            }  
        }  
    

    这是结果。

    60593-result.png


    如果回复有帮助,请点击“接受答案”并点赞。

    注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。

    1 个人认为此答案很有帮助。
    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。