如何在记事本++中替换正则表达式搜索中的一个字符

How to replace one character from regex search in notepad++

我正在尝试搜索和替换 sheet 中公式的错误,请参阅下面的示例数据:

SUM(ZeplinUpdateTracker!E:E)-SUM(E102:E104),"")</f><v/></c><c r="F105" s="36" t="str"><f>IF(B105 &lt;&gt; "",SUM(ZeplinUpdateTracker!F:F)-SUM(F102:F104),"")</f><v/></c><c r="G105" s="36" t="str"><f>IF(B105 &lt;&gt; "",SUM(ZeplinUpdateTracker!G:G)-SUM(G102:G104),"")</f><v/></c><c r="H105" s="36" t="str"><f>IF(B105 &lt;&gt; "",SUM(ZeplinUpdateTracker!H:H)-SUM(H102:H104),"")</f><v/></c><c r="I105" s="36" t="str"><f>IF(B105 &lt;&gt; "",SUM(ZeplinUpdateTracker!I:I)-SUM(I102:I104),"")</f><v/></c><c r="J105" s="36" t="str"><f>IF(B105 &lt;&gt; "",SUM(ZeplinUpdateTracker!J:J)-SUM(J102:J104),"")</f><v/></c><c r="K105" s="36" t="str"><f>IF(B105 &lt;&gt; "",SUM(ZeplinUpdateTracker!K:K)-SUM(K102:K104),"")</f><v/></c><c r="L105" s="36" t="str"><f>IF(B105 &lt;&gt; "",SUM(ZeplinUpdateTracker!L:L)-SUM(L102:L104),"")</f><v/></c><c r="M105" s="36" t="str"><f>IF(B105 &lt;&gt; "",SUM(ZeplinUpdateTracker!M:M)-SUM(M102:M104),"")</f><v/></c><c r="N105" s="36" t="str"><f>IF(B105 &lt;&gt; "",SUM(ZeplinUpdateTracker!N:N)-SUM(N102:N104),"")</f><v/></c><c r="O105" s="36" t="str"><f>IF(B105 &lt;&gt; "",SUM(ZeplinUpdateTracker!O:O)-SUM(O102:O104),"")</f><v/></c><c r="P105" s="36" t="str"><f>IF(B105 &lt;&gt; "",SUM(ZeplinUpdateTracker!P:P)-SUM(P102:P104),"")</f><v/></c><c r="Q105" s="36" t="str"><f>IF(B105 &lt;&gt; "",SUM(ZeplinUpdateTracker!Q:Q)-SUM(Q102:Q104),"")</f><v/></c><c r="R105" s="36" t="str"><f>IF(B105 &lt;&gt; "",SUM(ZeplinUpdateTracker!R:R)-SUM(R102:R104),"")</f><v/></c><c r="S105" s="36" t="str"><f>IF(B105 &lt;&gt; "",SUM(ZeplinUpdateTracker!S:S)-SUM(S102:S104),"")</f><v/></c><c r="T105" s="36" t="str"><f>IF(B105 &lt;&gt; "",SUM(ZeplinUpdateTracker!T:T)-SUM(T102:T104),"")</f><v/></c><c r="U105" s="36" t="str"><f>IF(B105 &lt;&gt;

我需要将第二个 SUM 的第一个范围内的数字替换为始终为 5。例如 SUM(ZeplinUpdateTracker!T:T)-SUM(T102:T104) 应更正为 SUM(ZeplinUpdateTracker!T:T) -SUM(T5:T104)

我将正则表达式写为 -SUM([A-Z][0-9][0-9][0-9] 可以有效搜索所有目标数据,但我无法将替换正则表达式写为 - SUM([A-Z]5 按字面替换为 [A-Z]

以下模式似乎有效:

^(.*?\bSUM.*?SUM\([A-Z]+)\d+(:[A-Z]+\d+\).*)$

Demo

这里是对正则表达式模式的解释:

^                     from the start of the string
    (.*?\bSUM         match and capture in  everything up to including the first SUM
    .*?SUM\(          as well as the second SUM
    [A-Z]+)           making sure to capture the letter from the first cell reference
    \d+               but do NOT capture the digit (we want to replace with 5)
    (:[A-Z]+\d+\).*)  then match and capture the rest of the formula in 
$

然后我们替换为 以获得您想要的输出。

看起来你可以寻找:

(SUM\([A-Z]+)\d+

Online Demo

  • ( - 打开第一个捕获组。
    • SUM\( - SUM(.
    • 的文字匹配
    • [A-Z]+ - 一个或多个大写字母。
    • ) - 关闭第一个捕获组。
  • \d+ - 一个或多个数字

替换为:


  • </code> - 第一个捕获组中的任何内容。</li> <li><code>5 - 文字 5.

注意:一定要勾选'Regular Expressions'