我正在寻找一个正则表达式来读取像
这样的c#类文件MyClass{}
正则表达式shld在传递字符串“MyClass {}”时返回“MyClass”。
编辑:
Common
{
MyClass1
{
Method1
{
"Helloworld";
"GoodBye";
}
Method2
{
"SayGoodMorning";
}
}
MyClass2
{
Method3
{
"M3";
}
}
}
实际上我必须阅读上面的层次结构,它可以有多个,并且必须在{}之前和之内阅读
答案 0 :(得分:1)
如果您的正则表达式引擎支持前瞻,那么您可以使用
\b[^{\s]+(?=\s*\{)
这将与您的示例中的["Common", "MyClass1", "Method1", "Method2", "MyClass2", "Method3"]
匹配。
说明:
\b
:以字边界开始比赛。
[^{\s]+
:匹配除开括号或空格外的一个或多个字符。
(?=\s*\{)
:断言匹配以一个字符结尾,后跟可选的空格(包括换行符)和左括号。
通常,正则表达式不能限制与某些层次结构级别的匹配(在这种情况下,仅在第二级嵌套时匹配)。在某些正则表达式方言中,这可能是有可能的,但这正在扩展正则表达式设计的极限 - 解析器更适合这种情况。