我们可以通过在记事本中使用另一个正则表达式来查找和替换正则表达式吗?

时间:2015-03-02 19:28:50

标签: regex notepad++

这里我试图用另一些文本替换一些文本。 示例: -

  

almada-institute.com:25:info@almada-institute.com:info12345: “你好” &LT;的 service@iubi.com &GT;:nossl   in-graph.com:25:info@in-graph.com:info123456789:"hello"<service@iubi.com>:nossl   get-herbals.net:25:info@get-herbals.net:info321: “你好” &LT;的 service@iubi.com &GT;:nossl

我需要像这样

  

almada-institute.com:25:info@almada-institute.com:info12345: “你好” &LT;的 info@almada-institute.com &GT;:nossl   in-graph.com:25:info@in-graph.com:info123456789:"hello"<info@in-graph.com>:nossl   get-herbals.net:25:info@get-herbals.net:info321: “你好” &LT;的 info@get-herbals.net &GT;:nossl

为此我使用: - enter image description here

但它只是用替换字段中的正则表达式替换搜索内容。

3 个答案:

答案 0 :(得分:2)

使用捕获组。把另一个正则表达式放在他们的意义上是没有意义的。因此,使用您提供的屏幕截图,正则表达式将类似于:

([a-z]\w+[@][a-z]\w+)[.]([a-z]\w+)

替换为:

\1-\2.\1

答案 1 :(得分:2)

您可以使用()创建正则表达式组,然后使用$N替换参考,这将访问N-th组。

所以在你的情况下,你可以这样做 正则表达式:([^: ]+:[^:]+:([^:]+):[^:]+:[^:]+)(:[^: ]+) 替换:\1<\2>\3或某些实现$1<$2>$3

您可以在此处自行试用:https://www.regex101.com/r/hY8pY9/1

答案 2 :(得分:2)

您可以使用正则表达式组。根据您上面的示例输入/输出,下面的内容对我有用。

找到:

:(\w+@.*?):(.*?)<(\w+@.*?)>:

替换为:

:\1:\2<\1>: