代码审查和解决问题的目的,我需要能够忽略大型解决方案中的所有属性获得者。我在想“Regex和Powershell来营救”。正则表达式匹配C#属性获取器
我需要一个rexeg模式匹配C#文件中的所有getter。 例如,如果这是测试字符串:
public string MockFullName
{
get
{
string ns = FullName.Substring(0, FullName.Length - Name.Length - 1);
return string.Format("{0}.Mock{1}", ns, Name);
}
}
我需要的比赛是:
get
{
string ns = FullName.Substring(0, FullName.Length - Name.Length - 1);
return string.Format("{0}.Mock{1}", ns, Name);
}
我在https://regex101.com/与模式玩耍了......
get(.|\n)*{(.|\n)*}
......这给了我太多的回报 - 也包括了班级的括号。
键入这个PowerShell不会放弃任何东西对于给定的C#文件:
sls 'get(.|\n)*{(.|\n)*}' MyCSharpFileWithAProperty.cs
因此,将满足什么样的正则表达式的这个?
感谢, POM
PS:为了记录在案,我以短形式特性不感兴趣,他们可以跳过:
public string Name { get; set; }
你的代码在哪里? – Toto
请显示您希望匹配的代码类型的示例,而不仅仅是您不希望匹配的代码。另外,如果你已经尝试创建一个正则表达式(你真的*应该在发布问题之前尝试自己),请使用该正则表达式发布代码,并指出哪些代码不适用。 –
话虽如此,请注意使用正则表达式来匹配涉及大括号(嵌套到任意深度)的代码语法以及注释和字符串,以及不会完全不可能的任意困难。 –