可以使用以下正则表达式判断一个字符串是否符合C#命名规则:

^[a-zA-Z_][a-zA-Z0-9_]{0,19}$

其中:

  • ^ 表示字符串的开始
  • [a-zA-Z_] 表示第一个字符必须是字母或下划线
  • [a-zA-Z0-9_]{0,19} 表示后面的字符可以是字母、数字或下划线,且最多可以有 19 个字符
  • $ 表示字符串的结尾

如果要限制字符串中不能包含汉字、空格和特殊符号,可以再加上一些限制条件,例如:

^[a-zA-Z_][a-zA-Z0-9_]{0,19}$|^[^\u4e00-\u9fa5\s!?\.\*\[\]?*<>|/:"\\]{1,20}$

其中:

  • | 表示或者的关系
  • ^[^\u4e00-\u9fa5\s!?\.\*\[\]?*<>|/:"\\]{1,20}$ 表示字符串不能包含汉字、空格和特殊符号,且长度不能超过 20 个字符

综合起来,可以使用以下代码判断一个字符串是否符合C#命名规则:

using System.Text.RegularExpressions;

public static bool IsCSharpIdentifier(string input)
{
    var pattern = "^[a-zA-Z_][a-zA-Z0-9_]{0,19}$|^[^\u4e00-\u9fa5\s!?\.\*\[\]?*<>|/:"\\]{1,20}$";
    return Regex.IsMatch(input, pattern);
}

示例:

Console.WriteLine(IsCSharpIdentifier("abc123")); // true
Console.WriteLine(IsCSharpIdentifier("Hello_World")); // true
Console.WriteLine(IsCSharpIdentifier("中文")); // false
Console.WriteLine(IsCSharpIdentifier("a b c")); // false
Console.WriteLine(IsCSharpIdentifier("MyClass?")); // false
C# 命名规则验证:正则表达式实现

原文地址: https://www.cveoy.top/t/topic/lONp 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录