C# 验证属性名称(检查非法字符)
为了编组和使用本机API自动生成类型,我需要在运行时验证某些结构的字段名。本机端的命名规则与C#中的命名规则相同(没有空格,没有特殊字符,如&,é,*,) 有标准的正则表达式模式吗C# 验证属性名称(检查非法字符),c#,regex,validation,properties,typebuilder,C#,Regex,Validation,Properties,Typebuilder,为了编组和使用本机API自动生成类型,我需要在运行时验证某些结构的字段名。本机端的命名规则与C#中的命名规则相同(没有空格,没有特殊字符,如&,é,*,) 有标准的正则表达式模式吗 注意:作为一种解决方法,我正在考虑在中构建静态方法,仅用于名称验证。那么您是要删除非法字符(黑名单)还是只检查标识符是否有效?对于有效字符,可以使用以下内容: // Match an identifier - Matches "type1" but not &type1" or "#define". \b(_
注意:作为一种解决方法,我正在考虑在中构建静态方法,仅用于名称验证。那么您是要删除非法字符(黑名单)还是只检查标识符是否有效?对于有效字符,可以使用以下内容:
// Match an identifier - Matches "type1" but not &type1" or "#define".
\b(_\w+|[\w-[0-9_]]\w*)\b
下面是示例(尽管它是针对VisualStudio的)。
以下是到目前为止我想要的。应该足够了:
^[a-zA-Z]+[a-zA-Z0-9\_]*$
可能是重复的。@CodeCaster该死的。。。这是真的。。。从未尝试过,但却是真的。。。所以肯定不会让
Typebuilder.DeclareProperty
为我做验证。你有没有尝试过简单的谷歌搜索?这里有一个链接,可以帮助你开始使用RegEx
当然还有其他内置的字符串函数,比如。在.net中包含,你也可以使用@MethodMan我知道regex,只是想知道是否有一个标准模式用于名称验证,而不是重新发明轮子。。。但是好吧。。。我将重新创造。