验证 属性 名称(检查非法字符)

Validate property name (checking for illegal characters)

出于编组目的和使用本机自动类型构建 API,我需要在运行时验证某些结构的字段名称。本机端的命名规则与 C# 相同(无空格,无特殊字符,如 &é、*、.).

是否有标准的正则表达式模式?

注意:作为解决方法,我正在考虑围绕 DeclareProperty in TypeBuilder 构建静态方法,仅用于名称验证目的。

那么您是要删除非法字符(黑名单)还是只检查标识符是否有效?对于有效字符,您可以使用类似:

// Match an identifier - Matches "type1" but not &type1" or "#define".
\b(_\w+|[\w-[0-9_]]\w*)\b

这里是 MSDN reference(虽然它是 Visual Studio)。 这是 Regex Patterns reference.

到目前为止我想要的应该足够了:

^[a-zA-Z]+[a-zA-Z0-9\_]*$