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

Jiale Xue - MSFT 34,356 信誉分 Microsoft 供应商
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
.NET
基于 .NET 软件框架的 Microsoft 技术。
29 个问题
ASP.NET
ASP.NET
.NET Framework 中一套用于生成 Web 应用程序和 XML Web 服务的技术。
17 个问题
C#
C#
一种面向对象的类型安全的编程语言,它起源于 C 语言系列,包括对面向组件的编程的支持。
114 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Hui Liu-MSFT 40,786 信誉分 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 个其他答案

排序依据: 非常有帮助