我需要验证要检索的属性名称的用户输入。
例如,用户可以为 Windows 窗体控件对象键入“Parent.Container”属性或仅键入“Name”属性。然后我使用反射来获取属性的值。
我需要的是检查用户是否输入了 c# 属性的合法符号(或者只是像 \w 这样的合法单词符号),并且这个属性是否可以复合(包含两个或多个用点分隔的单词)。
我现在有这个,这是一个正确的解决方案吗?
^([\w]+\.)+[\w]+$|([\w]+)
Run Code Online (Sandbox Code Playgroud)
我使用了Regex.IsMatch
方法,true
当我通过"?someproperty"时它返回,尽管 "\w" 不包括 "?"