正则表达式在替换之前记住所有匹配项

时间:2015-10-21 13:45:09

标签: regex notepad++

我有一个由逗号分隔的2个值的列表,如下所示:

A, 0xAA
B, 0xBB
C, 0xCC

等。我想使用notepad ++和Regex将此列表替换为此表单的列表:

A-B-C
0xAA-0xBB-0xCC

匹配模式的正则表达式如下所示:

^(\w+), 0x(\w\w)$

但我不知道如何让记事本以我描述的方式替换比赛。它必须记住比赛或类似的东西,我甚至不确定如何描述这种行为,这可能是我找不到解决方案的原因。

3 个答案:

答案 0 :(得分:2)

1。)按住ALT - 键,选择第二列元素:

enter image description here

2。)剪切(CTRL+X)并粘贴下方(CTRL+V

enter image description here

3。)添加"#标签"两个区域之间的(或其他)

enter image description here

4.。)运行正则表达式替换:,?\s+(替换-

enter image description here

5.。)用新行(-#-)替换\r\n

enter image description here

适用于任意数量的行和/或列。只需冲洗并重复步骤1,2,3,最后是4和5.第二块变成第二排,第三块 - >第三,等等。

答案 1 :(得分:1)

以下是Excel的解决方法:

  1. 将列表粘贴到Excel
  2. 选择列并选择数据 - > 文字到列。选择分隔,将分隔符设置为"逗号"和文本限定符到{none},使用Text作为数据类型。
  3. 复制第1列值(" A"," B"等)并使用转置粘贴到新行上。
  4. 重复第2列。
  5. 复制2行并粘贴到Notepad ++中,并用-替换所有标签。
  6. 结果:

    A-B-C
    0xAA-0xBB-0xCC
    

答案 2 :(得分:0)

如前所述,notepad ++不是一个很好的替代工具,但如果你真的需要使用它,你的简单例子的模式会很大:

模式:

(\w)(,\s)(0x\w\w)\r\n(\w)(,\s)(0x\w\w)\r\n(\w)(,\s)(0x\w\w)

替换为:

$1-$4-$7 \r\n$3-$6-$9
相关问题