【发布时间】:2020-10-09 10:01:43
【问题描述】:
我正在制作一个解析 .cs 文件的解析器。在网站上上传 .cs 文件后,我必须解析 .cs 文件命名空间内的所有内容。我想用正则表达式来完成这个,但我不知道如何做到这一点,因为我是正则表达式的新手。
我将如何编写一个表达式来输出 .cs 文件的第一个和最后一个括号内的所有内容? 例如,这是一个简单的 .cs 文件:
namespace Application
{ <----------------------------------
class Members
{
int testInt = 10;
string testString = 'test';
public void testMethod()
{
}
}
} <----------------------------------
我想获取代码示例中箭头之间的所有代码。
我听过并读过一些关于团体的东西,但我还不太明白。如果有人可以帮助我,我将不胜感激。
【问题讨论】:
-
您在尝试使用正则表达式解析 .cs 文件时走错了方向。是的,您将能够创建一个表达式来解析这个特定的 sn-p,但您会发现每个 sn-p 都需要不同的表达式。如果你想解析一种编程语言,你必须build a compiler。
-
@DourHighArch 谢谢!我知道这可能是构建解析器的最佳方式,我只是没有太多时间阅读它。由于我只有几天的时间来完成这项工作,我认为正则表达式将是更快的选择。另外,由于我不是 C# 专家,所以现在自己构建编译器可能不适合我。
-
使用正则表达式不会更快,因为您将不得不创建无限数量的正则表达式,而且您不会活那么久。如果您仅对在命名空间中提取代码感兴趣,您可以构建扫描器部分。但是你说“第一个和最后一个括号内的所有内容”,这与命名空间不同。如果你 explained the problem you are trying to solve, not just what solution you have decided to use 会很有帮助。
标签: c# regex asp.net-mvc