notepad++ regex 每行重复 xml 文本

notepad++ regex 每行重复 xml 文本

我需要处理一个 xml 文件,其中必须插入(复制)某些文本 - 例如,请参阅以下内容:

<Item Property1="..." ... PropertyN="someText"></Item>

我希望它看起来如何:

<Item Property1="..." ... PropertyN="someText">someText</Item>

someText

  1. 没有固定长度(1 个或多个句子/单词)
  2. 可以/可能包含以下内容:
    • xA
    • (& 和 _)
    • {0}{1}
    • /\~!@#%&*_+

我的问题:

  1. 我设法找到了一些组(即 PropertyN 之前的文本(^.*?PropertyN=")和最后一个组(即包含“> </Item>” - 的组)\"></Item>.*$),但我不知道如何提取 PropertyN 值、如何集成它以及如何复制它。

  2. 我如何更改(替换)正则表达式,以便为 someText 的每个副本添加前缀和/或后缀(整个文件中的常量)?(例如,我希望添加“###prefix”和“###suffix”,以便该行看起来像这样)

    <Item Property1="..." ... PropertyN="someText">###prefixsomeText###suffix</Item>

谢谢你!

R

答案1

  • Ctrl+H
  • 找什么:<Item Property1=.+? PropertyN="([^"]+)">\K
  • 用。。。来代替:###prefix$1###suffix
  • 查看 相符
  • 查看 环绕
  • 查看 正则表达式
  • 取消选中 . matches newline
  • Replace all

解释:

<Item Property1=    # literally
.+?                 # 1 or more any character, not greedy
PropertyN="         # literally
([^"]+)             # group 1, 1 or more any character that is not double quote
">                  # end tag
\K                  # forget all we have seen until this position

替代品:

###prefix           # prefix
$1                  # content of group 1, (some text)
###suffix           # suffix

截图(之前):

在此处输入图片描述

截图(之后):

在此处输入图片描述

相关内容