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

时间:2015-02-26 16:55:03

标签: c# regex validation properties typebuilder

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

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

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

2 个答案:

答案 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\_]*$