【问题标题】:RegEx in Notepad++ to replace text in files with some exclusionsNotepad++ 中的正则表达式用一些排除项替换文件中的文本
【发布时间】:2023-01-18 05:31:39
【问题描述】:

我有多个文本文件,其内容中包含各种 xpath。我想使用 Notepad++ 在这些 xpath 中添加一个新节点,但有一些我不想这样做的例外情况,由于它们,我正在努力准备正确的 RegEx 语句。

目标是添加FpMLxpath 中的节点之后分配节点有以下例外:

  1. 如果分配前面是CRD_结构化
  2. 如果节点在分配是FT_分机

    注意分配是可重复的节点,因此在这些文本文件中,它可能用 [] 中的特定索引表示。

    例子:

    1. 分配[Out1]/@fpmlVersion-->分配[Out1]/FpML/@fpmlVersion
    2. 分配[Int1]/交易-->分配[Int1]/FpML/贸易
    3. 分配[Out1]/FT_Extension-->没变
    4. pathString="分配[]"-->没变
    5. CRD_Structured/分配[FindAllocOut1]/TS_ORDER_ALLOC-->没变

【问题讨论】:

    标签: regex notepad++


    【解决方案1】:

    我不会尝试找到一个正则表达式/替换来实现这一点。相反,我会分几个步骤进行更改。简而言之,我会(在下面的第 2 步和第 3 步中)针对所有不应更改的情况将标记字符串插入 allocation,然后(在第 4 步)插入想要的文本,最后(第 5 步)删除标记字符串。

    更详细。

    1. 选择文本中未出现的标记字符串。下面使用字符串!!!。
    2. 正则表达式将 (CRD_Structured/a)(llocation) 替换为 !!!。
    3. 正则表达式将 (a)(llocation[w+]/FT_Extension) 替换为 !!!。
    4. 将(a)(llocation[w+]/)替换为!!!FpML/。
    5. 将!!! 替换为空。

      请注意,第 4 步还插入了标记字符串。这是为了防止多次插入 FpML/。

      问题中的第4项不清楚。可能需要对步骤 2 和 3 进行补充。此添加会将正则表达式替换为 !!! ^(a)(llocation[w*])$。这假定路径字符串是完整的行。

    【讨论】:

      猜你喜欢
      • 2014-12-06
      • 1970-01-01
      • 2020-09-23
      • 1970-01-01
      • 2015-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-01
      相关资源
      最近更新 更多