如何在记事本++中查找和替换括号内容

时间:2013-05-26 16:14:44

标签: regex replace notepad++

我有一个包含每个括号内容的大文件。这不是行的开头。

1. Atmos-phere (7800)
2. Atmospheric composition (90100)
3.Air quality (10110)
4. Atmospheric chemistry and composition (889s120)
5.Atmospheric particulates (10678130)

我需要做以下

  1. 替换整个内容,删除行号
    1.Atmosphere (10000)到普通Atmosphere

  2. 也删除行号 1.Atmosphere (10000)到普通Atmosphere

  3. 将其设为超链接 1.Atmosphere (10000)到普通<a href="http://blahqd.com/Atmosphere.htm">linky study</a>

  4. [我添加/编辑]将单词提取到一个新文件中,我们在其中获得一个简单的关键词列表。您还可以解释数字替换\ 1 \ 2,并在某些字符上转义

    1. 每组关键词都是新的一行 Atmospheric
      Atmospheric composition
      Air quality

    2. 每一组都是一行,用一个空格和逗号分隔 Atmospheric, Atmospheric composition, Air quality

  5. 我尝试使用正则表达式查找,\(*\)找到括号,但不知道如何替换它,以及放置替换位置,以及哪个变量保存替换值。

3 个答案:

答案 0 :(得分:11)

这是记事本([0-9(). ]*)(.*)(\s\()(.*)

的地雷
  1. 您需要分组搜索

    1. ([0-9. ]*) 0次或更多次的数字,空格和点组合

    2. (.*)一切直到下一个表达

    3. (\s\()空格和左括号

    4. (.*)其他一切

  2. 在替换框中 - 如果放置

    进行练习
    1. \1\2\3\4这不做任何事情:)只需将上面的所有群组从 1.1 打印到 1.4

    2. \2这样您只能获得 1.2

    3. new_thing\2new_thing在论坛

    4. 之前和之后添加您的文字
    5. <a href=blah.com/\2.html>linky study</a>所以现在添加了你的文字 - 在创建链接时,单词之间的空格可能会有问题 - 所以需要另外一个表达式来替换链接中的所有空格,即_

    6. 如果您需要将反斜杠添加为文本(或正则表达式使用的其他特殊符号),则必须对其进行转义,以便将\\替换为反斜杠或将\$添加到dolar符号
  3. 想要更多调整 - <a href=blah.com/\2.html>\2</a>再次添加 1.2 组 - 或者使用您想要的任何内容

    在屏幕截图中,您可以看到我如何使用它(我找到并替换了一行) enter image description here

    好的,然后我们在结尾处有结肠的情况4.2,所以只需在提取的部分后添加冒号:

    将替换从\2更改为\2,

    现在你需要加入它,最简单的方法是编辑 - &gt;线路操作 - &gt;加入线 但如果你想成为真正的专业人士切换到Extended modeRegular expression窗口中的Replace模式上方)和查找\r\n并替换为空格。

    在某些情况下删除行结尾可能会有所不同,但这是另一个故事 - 现在我假设你使用Windows,因为Notepad ++是windows工具,行结尾是windows风格:)

答案 1 :(得分:6)

以下正则表达式应该完成这项工作:\d+\.\s*(.*?)\s*\(.*?\)

替换:<a href=example.com\\\1.htm>\1</a>

<强>解释

  • \d+:匹配一个数字0次或更多次。
  • \.:匹配一个点。
  • \s*:匹配空格0次或更多次。
  • (.*?):将所有内容分组并匹配,直到(找到。
  • \s*:匹配空格0次或更多次。
  • \(.*?\):匹配括号及其间的内容。

替换部分很简单,因为\1指的是匹配组。

<强> Online demo

答案 2 :(得分:2)

尝试将^\d+\.(.*) \(\w+\)$替换为<a href=blah.com\\\1.htm>linky study</a>

^\d+.删除前导数字和点。 (.*)收集了这些字词。然后有一个空间。 \(\w+\)$匹配括号中的最终数字。

更新已添加的Q4。

正则表达式捕获圆括号()之间的内容。在搜索的文本中找到的括号必须以\(\)进行转义。在替换表达式中,\1\2等被相应的捕获表达式替换。因此,Z(\d+)X([aeiou]+)Y等搜索表达式可能与Z29XeieiY匹配,然后替换表达式P\2Q\1R会插入PeieiQ29R。在此答案顶部的搜索中,有一个捕获,(.)捕获或收集单词,然后\1将捕获的单词插入替换文本。