【问题标题】:Removing empty XML doc comments删除空的 XML 文档注释
【发布时间】:2015-02-01 15:05:03
【问题描述】:

我继承了一个 C# 项目,其中包含无数这样的 XML doc cmets:

/// <summary>
/// 
/// </summary>
/// <param name="id"></param>
/// <returns></returns>

这些没有任何价值;他们只是一堆噪音。

没有编写自定义程序,有没有办法从我的整个解决方案中消除这种空 XML cmets?我想保留那些不为空的。我标记了这个 ReSharper,因为它似乎是可以使用的工具,但如果有一种不涉及 R# 的方法也可以。

【问题讨论】:

  • 你可能会构造一个正则表达式来替换所有内容。
  • @dav_i 一个可以处理间距/换行差异并且可以区分空 XML 和非空 XML 的正则表达式?似乎是一项艰巨的任务。

标签: c# refactoring comments resharper


【解决方案1】:

以下正则表达式匹配以下内容:

/// <summary></summary>
/// <param name="id"></param>
/// <returns></returns>

/// <summary>
/// 
/// </summary>

/// <summary>
/// </summary>
/// <param name="id"></param>

但不是

/// <summary>
///  A summary
/// </summary>
/// <returns>Some things</returns>

根据需要。

///\s*<summary>\s*(\r\n///\s*)*(\r\n///)?\s*</summary>\s*\r\n(///.*></.*(\r\n)?)*

不幸的是,它在 Visual Studio 的查找和替换对话框中似乎不起作用!

它确实可以在 Notepad++ 中使用,因此您可以使用它。

来自 emodendroket 评论的工作正则表达式:

 *///\s*<summary>\r\n\s*///\s*\r\n\s*///\s*</summary>(\s*(\r\n)*\s*///\s*<[^>]+><‌​/[^>]+>)*

【讨论】:

  • 这适用于 VS:` *///\s*\r\n\s*///\s*\r\n\s*///\s* (\s*(\r\n)*\s*///\s*]+>[^>]+>)*`。不知道为什么代码高亮的反引号不起作用。
  • 由于您的想法最终奏效了,尽管我持怀疑态度,但如果您在我的工作正则表达式中进行编辑,我将接受此作为正确答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-28
  • 2013-03-26
  • 1970-01-01
  • 2020-12-30
相关资源
最近更新 更多