gpt4 book ai didi

c# - 用于在C#中检查有效属性名称的正则表达式

转载 作者:太空狗 更新时间:2023-10-30 01:02:30 25 4
gpt4 key购买 nike

我需要验证用户输入的属性名称才能检索。

例如,用户可以为Windows窗体控件对象键入“Parent.Container”属性,也可以仅键入“Name”属性。然后,我使用反射来获取属性的值。

我需要检查用户是否键入了C#属性的合法符号(或只是合法的文字符号,如\w),而且此属性可以是复合的(包含两个或多个用点分隔的单词)。

到目前为止,我已经有了这个,这是正确的解决方案吗?

^([\w]+\.)+[\w]+$|([\w]+)

我使用了 Regex.IsMatch方法,当我通过“?someproperty”时,它返回了 true,尽管“\w”不包含“?”

最佳答案

不是最好的,但这会起作用。演示here

^@?[a-zA-Z_]\w*(\.@?[a-zA-Z_]\w*)*$

注意
*数字 0-9,不允许作为第一个字符
* @只允许作为首字符 ,但不能在其他任何地方使用(编译器会剥离)
*允许使用_
编辑

根据您的要求,下面的Regex会更有用,因为输入属性名称中不必包含@。检查here
^[a-zA-Z_]\w*(\.[a-zA-Z_]\w*)*$

关于c# - 用于在C#中检查有效属性名称的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33711381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com