对于使用本机API的编组目的和自动类型构建,我需要在运行时验证某些结构的字段名称。原生端的命名规则与C#中的命名规则相同(没有空格,没有特殊字符,如& ,é,*,。)
是否有标准的正则表达式模式?
注意:作为解决方法,我正考虑在DeclareProperty
中围绕TypeBuilder
构建静态方法,仅用于名称验证。
答案 0 :(得分:1)
那么你想删除非法字符(黑名单)还是只检查标识符是否有效?对于有效字符,您可以使用以下内容:
// Match an identifier - Matches "type1" but not &type1" or "#define".
\b(_\w+|[\w-[0-9_]]\w*)\b
这是MSDN reference(虽然它适用于Visual Studio)。 这是Regex Patterns reference。
答案 1 :(得分:1)
到目前为止应该足够了我想要的东西:
^[a-zA-Z]+[a-zA-Z0-9\_]*$