【问题标题】:Regular expression for comments注释的正则表达式
【发布时间】:2014-12-17 15:58:57
【问题描述】:

我有很多代码,想查找并替换其中的一些文本。我想替换所有匹配项,但不包括 cmets 中的匹配项。假设我想在我的代码中查找并替换字符串“text”。示例:

Console.WriteLine("text"); // must be replaced 
// some text    /* does not need to be replaced because this string begins from  "//"  */ 

不幸的是,我不知道如何使用正则表达式。有人可以帮我吗?

【问题讨论】:

  • 第二行的输出是什么?
  • 第二行没有找到。我想得到的正则表达式与第二行中的“文本”不匹配
  • 你用的是什么工具?
  • @funkwurm:不重复。这在评论之外搜索一些文本,而不是提取部分。不过,如果可以提供替换功能,您的帖子会很有用。

标签: regex regex-negation


【解决方案1】:

严格遵守要求“查找text 除非被//\n 包围”,这将是使用的正则表达式,并且只处理捕获组1。但请注意(如我在评论中说)不考虑字符串中的注释分隔符,正如debuggex demo 中的第 3 行所示。 nhahtdh 说替换回调函数是正确的方法,然后您可以捕获任何字符串并在回调中进一步调查它。

\/\/[^\n]*(?:\n|$)|(text)

Debuggex Demo

【讨论】:

    【解决方案2】:
    ^[^\/]+(\/\/.*)\n
    

    我认为这应该适合您的需求

    【讨论】:

    • 你没有抓住重点。 OP想要替换text,而不是注释行。
    猜你喜欢
    • 2014-07-26
    • 2014-01-29
    • 2012-10-26
    • 2020-02-02
    • 1970-01-01
    • 2011-08-19
    • 2020-07-08
    • 1970-01-01
    • 2011-11-25
    相关资源
    最近更新 更多