C# 命名规则验证:正则表达式实现
可以使用以下正则表达式判断一个字符串是否符合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
原文地址: https://www.cveoy.top/t/topic/lONp 著作权归作者所有。请勿转载和采集!