铊; DR;
找到只拥有一个字符串属性的c#类的正则表达式是什么? (没有方法或其他属性)
长篇故事:
我现在领导技术领导一个维护多种解决方案的团队。环顾四周,我发现了很多Dictionary<string, SpecialValue>
的案例,其中SpecialValue
是一个包含单个公共字符串属性的类,名为&#34; value&#34;。
这里的意思是,得到的Json就像{"dictionaryKey":{value:"myValue"}}
我想知道我们有多少这样的案例。
Visual Studio可以使用正则表达式搜索,因此...查找具有单个字符串属性的类的正则表达式是什么?
答案 0 :(得分:0)
我发现Visual Studio对正则表达式搜索的支持有点短。它不支持\s
,\W
,\B
以及更多模式。
假设所有类始终只有一个公共字符串auto-property,没有方法,继承,泛型或任何东西,例如类:
class Test
{
public String Value { get; set; }
}
正则表达式:
class[\r\n\t\f ]+[^\d]\w*[\r\n\t\f ]*{[\r\n\t\f ]*public[\r\n\t\f ]+(string|String)[\r\n\t\f ]+[^\d]\w*[\r\n\t\f ]*{[\r\n\t\f ]*get[\r\n\t\f ]*;[\r\n\t\f ]*set[\r\n\t\f ]*;[\r\n\t\f ]*}[\r\n\t\f ]*}
应涵盖大部分案件。请注意,之前的正则表达式还会捕获注释或非法位置的类。例如,注释掉或在方法内部声明的类将被这个正则表达式捕获,因为它只搜索字符串文字并且不检查C♯所需的所有语法(无论如何,这对于正则表达式来说都是不可能的工作)。