复制一行文本并在记事本++中添加正确的前缀?

时间:2017-12-05 19:26:17

标签: regex notepad++

我必须复制每一行,但我也必须修改第二行。 例如:

我的输入数据是:

  

C:\风向\ Dir2中\ DIR3

最终应该是这样的:

  

来源:C:\ Dir \ Dir2 \ Dir3目的地:http://mymachine/se/docs/Dir1/Dir2/Dir3

我成功了:

  

来源:C:\ Dir \ Dir2 \ Dir3目的地:C:\ Dir \ Dir2 \ Dir3

通过

  

找到" ^。* $"替换为"来源:$ 0目的地:$ 0"

我必须更换" C:\"用" http://mymachine/se/docs/"和" \"用" /"。

怎么做?

1 个答案:

答案 0 :(得分:1)

代码

See regex in use here

[^\\]+\\(.*)

替换:Source:$0 Destination:http://mymachine/se/docs/$1

要解决反斜杠问题,您需要在上面的那个之后运行第二个正则表达式替换。见下文:

\bDestination:[^\\\v]*\K\\

替换:/

结果

输入

C:\Dir1

输出

Source:C:\Dir1 Destination:http://mymachine/se/docs/Dir1

说明

第一种模式

  • [^\\]+匹配除反斜杠\之外的任何字符一次或多次
  • \\匹配文字反斜杠字符\
  • (.*)将任意字符(贪婪)捕获到捕获组1(字符串中第一个反斜杠之后的所有内容)

第二种模式

  • \b断言位置为单词边界
  • Destination:按字面意思匹配
  • [^\\\v]*匹配任何数字的除反斜杠\和垂直空白字符之外的任何字符
  • \K重置模式的匹配。最终匹配中不再包含任何以前消费的字符
  • \\匹配文字反斜杠