正则表达式读取类文件

时间:2010-07-03 06:51:36

标签: regex

我正在寻找一个正则表达式来读取像

这样的c#类文件
MyClass{}

正则表达式shld在传递字符串“MyClass {}”时返回“MyClass”。

编辑:

Common
{
  MyClass1
  {
    Method1
    {
      "Helloworld";
      "GoodBye";     
    }
    Method2
    {
      "SayGoodMorning";
    }
  }
  MyClass2
  {
    Method3
    {
      "M3";
    }
  }
}

实际上我必须阅读上面的层次结构,它可以有多个,并且必须在{}之前和之内阅读

1 个答案:

答案 0 :(得分:1)

如果您的正则表达式引擎支持前瞻,那么您可以使用

\b[^{\s]+(?=\s*\{)

这将与您的示例中的["Common", "MyClass1", "Method1", "Method2", "MyClass2", "Method3"]匹配。

说明:

\b:以字边界开始比赛。

[^{\s]+:匹配除开括号或空格外的一个或多个字符。

(?=\s*\{):断言匹配以一个字符结尾,后跟可选的空格(包括换行符)和左括号。

通常,正则表达式不能限制与某些层次结构级别的匹配(在这种情况下,仅在第二级嵌套时匹配)。在某些正则表达式方言中,这可能是有可能的,但这正在扩展正则表达式设计的极限 - 解析器更适合这种情况。