正则表达式在c#源文件中查找注释

时间:2011-03-21 14:00:58

标签: c# regex comments

我无法让我的正则表达式匹配c#代码文件的标头。 我基本上需要返回标题,如果它存在。

示例:

#define debug
//****************************************************************************************************
//  <copyright file="" company="">
//      Copyright (c) . All rights reserved.
//  </copyright>
//  <project>Engine</project>
//****************************************************************************************************

code here

//some other comment here

more code here

//another comment here

我的正则表达式如下:

(?:/\\*(?:[^*]|(?:\\*\+[^*/]))*\\*\+/)|(?://.*)

但它只匹配此行: // * ** * ** * ** * ** * < / EM> ** * ** * ** * ** * ** * < / EM> ** * ** * ** * ** * ** * < / EM> ** * ** * ** * ** * ***

而不是评论的其余部分。

评论也可以像"*/"一样结束。

我的正则表达式错了吗?为什么不赶上整个街区?

4 个答案:

答案 0 :(得分:1)

试试这个 - 然后你可以拿出整个评论(用“//”或其中的组来获取文本。这将返回每行的匹配。请使用“Multiline”选项运行这样:

^/[/|*](.+)$

答案 1 :(得分:1)

需要多线

(^\/\/.*?$|\/\*.*?\*\/)

答案 2 :(得分:0)

我想你想要提取伪xml代码,以便下面的表达式可以工作。请注意,您仍然必须删除每行中的前导“//”。

//\*+\n((?://.*\n)+)//\*+

答案 3 :(得分:0)

使用正则表达式模式:(/ *([^ ] | [\ r \ n] |(* +([^ /] | [\ r \ n]))) * + /)|(//.

查看更多https://code.msdn.microsoft.com/How-to-find-code-comments-9d1f7a29/