如何确定字符串是否是有效的变量名?

Zan*_*son 25 c# regex string variables

我正在寻找一种快速方式(在C#中)来确定字符串是否是有效的变量名.我的第一个直觉是鞭打一些正则表达式,但我想知道是否有更好的方法来做到这一点.就像某种秘密方法隐藏在某个名为IsThisAValidVariableName(字符串名称)的地方,或其他一些光滑的方法,这样做不容易出现由于缺乏正则表达能力而可能出现的错误.

Gon*_*alo 47

试试这个:

// using System.CodeDom.Compiler;
CodeDomProvider provider = CodeDomProvider.CreateProvider("C#");
if (provider.IsValidIdentifier (YOUR_VARIABLE_NAME)) {
      // Valid
} else {
      // Not valid
}
Run Code Online (Sandbox Code Playgroud)

  • 是.您还需要将该代码放在一个方法中,并将该方法放在一个类和一个名为YOUR_VARIABLE_NAME的变量中......和...) (15认同)
  • 您需要为此引用“System.CodeDom.Compiler”命名空间:-) (2认同)
  • “CodeDomProvider”有多贵? (2认同)
  • 直接使用 new Microsoft.CSharp.CSharpCodeProvider().IsValidIdentifier(...) 需要的开销显着减少;无需解析即可找到提供者 (2认同)