如何用Notepad++正则匹配<title>后数字并批量减固定值22
在Notepad++中批量将标记后的数字减22的解决方案 <a class="header-anchor" href="#在notepad-中批量将标记后的数字减22的解决方案" aria-hidden="true">#</a></h1>
<h2 id="步骤1:安装python-script插件(未安装的话)">步骤1:安装Python Script插件(未安装的话) <a class="header-anchor" href="#步骤1:安装python-script插件(未安装的话)" aria-hidden="true">#</a></h2>
<ul>
<li>打开Notepad++,点击顶部菜单栏「插件」→「插件管理」</li>
<li>在插件列表里找到「Python Script」,勾选后点「安装」,安装完成重启Notepad++</li>
</ul>
<h2 id="步骤2:编写替换脚本">步骤2:编写替换脚本 <a class="header-anchor" href="#步骤2:编写替换脚本" aria-hidden="true">#</a></h2>
<ul>
<li>点击「插件」→「Python Script」→「New Script」,命名为<code>Subtract22.py</code>,粘贴以下代码:</li>
</ul>
<pre class="hljs"><code class="language-python volc-pre-code">import re
def adjust_number(match):
original_num = int(match.group(1))
return f"<title>{original_num - 22}"
editor.rereplace(r'<title>(\d+)', adjust_number)
</code></pre>
<ul>
<li>保存脚本,回到要处理的文本窗口</li>
</ul>
<h2 id="步骤3:执行脚本">步骤3:执行脚本 <a class="header-anchor" href="#步骤3:执行脚本" aria-hidden="true">#</a></h2>
<ul>
<li>点击「插件」→「Python Script」→「Scripts」→「Subtract22」,所有<code><title></code>后的数字会自动减22</li>
</ul>
<h2 id="无插件替代方法(适合小量数据)">无插件替代方法(适合小量数据) <a class="header-anchor" href="#无插件替代方法(适合小量数据)" aria-hidden="true">#</a></h2>
<p>如果不想装插件,可分两步操作:</p>
<ol>
<li>用正则标记数字:打开替换窗口(Ctrl+H),选「正则表达式」模式,搜索<code><title>(\d+)</code>,替换为<code><title>[OLD:\1]</code>,把原数字标记出来</li>
<li>把带标记的文本复制到Excel,提取数字列计算<code>原数字-22</code>,再替换回Notepad++中</li>
</ol>
<h2 id="正则匹配说明">正则匹配说明 <a class="header-anchor" href="#正则匹配说明" aria-hidden="true">#</a></h2>
<p>你之前用的<code><(.+?)></code>仅匹配<code><></code>包裹的标记内容,没有捕获后面的数字。正确的正则<code><title>(\d+)</code>会:</p>
<ul>
<li>精确匹配<code><title></code>标记</li>
<li>用<code>(\d+)</code>捕获标记后的连续数字,作为可用于计算的分组</li>
</ul>
<p>内容的提问来源于stack exchange,提问作者Chetan Arvind Patil</p>
相关产品推荐
相关产品推荐

