Notepad++ 仅替换一行中的指定单词

问题描述 投票:0回答:2

我正在尝试替换 Notepad++ 中每一行中的特定单词。我已经成功地复制了上述行,如下所示:

cn:约翰娜·齐默尔曼
cn: 约翰娜·齐默尔曼

在每隔一行,我想将 cn 替换为 displayName。在 Notepad++ 中,我发现如何用

(cn:.*)\s+\K\1
标记每隔一个重复行,现在我只需要正则表达式来更改第二个重复行,如下所示:

cn:约翰娜·齐默尔曼
显示名称: Johanna Zimmermann

我该怎么做?以前从未使用过正则表达式

notepad++
2个回答
1
投票

我们可以尝试在正则表达式模式下执行以下查找和替换:

Find:    cn: (.*)\Rcn: (.*)
Replace: cn: $1\ndisplayName: $2

查找捕获

$1
$2
中一对相邻行的
cn
值。然后替换使用
displayName
作为第二行的标签。


0
投票

如果两行应该相同,并且您还希望在替换中保留相同数量的空格,则可以使用 2 个捕获组和 2 个反向引用。

查找内容:

(cn:)(.*)\R\1\2

替换为:

$1$2\ndisplayName:$2

模式匹配:

  • (cn:)
    捕获第1组,比赛
    cn:
  • (.*)
    捕获组 2,匹配该行的其余部分
  • \R\1\2
    匹配换行符,后跟对组 1 和组 2 的 2 个反向引用

查看 正则表达式演示

© www.soinside.com 2019 - 2024. All rights reserved.