鹿城 發表於 2024-8-12 10:37:54

VScode中使用正则表达式替换字符串的3个步骤分享

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">快速回忆点:</a></li><li><a href="#_label1">场景:</a></li><li><a href="#_label2">解决办法:</a></li><li><a href="#_label3">实操:</a></li><ul class="second_class_ul"><li><a href="#_lab2_3_0">步骤1:正则搜索</a></li><li><a href="#_lab2_3_1">步骤2:撰写正确的替换变量填写</a></li><li><a href="#_lab2_3_2">步骤3:替换</a></li></ul><li><a href="#_label4">后记</a></li><ul class="second_class_ul"></ul></ul></div><p class="maodian"><a name="_label0"></a></p><h2>快速回忆点:</h2>
<div class="jb51code"><pre class="brush:xhtml;">搜索: ^(SET_)(.*)(_MM)(.*)
替换: set_$2_mm_$4
</pre></div>
<p class="maodian"><a name="_label1"></a></p><h2>场景:</h2>
<p>场景1:</p>
<p>假设需要替换下面字符串中的以SET开头的字符串为set,该如何处理?</p>
<div class="jb51code"><pre class="brush:plain;">SET_ABC_DEF
SET_123_MCF
ABC_SET_ABC
</pre></div>
<p>替换后期望目标:</p>
<div class="jb51code"><pre class="brush:plain;">set_ABC_DEF
set_123_MCF
ABC_SET_ABC
</pre></div>
<p>场景2:把下面字符串中带有SET_xxx_MM_xxx的替换为 set_xxx_mm,并且只替换SET作为行开头的</p>
<div class="jb51code"><pre class="brush:plain;">SET_ABC_MM_DEF
SET_123_MM_MCF
ABC_SET_ABC_MM_abc
</pre></div>
<p>替换后期望目标:</p>
<div class="jb51code"><pre class="brush:plain;">set_ABC_mm_DEF
set_123_mm_MCF
ABC_SET_ABC_MM_abc #注意这里没有被替换,如果直接ctrl F替换这里会被替换
</pre></div>
<p class="maodian"><a name="_label2"></a></p><h2>解决办法:</h2>
<p>首先人眼可以知道第1 2行需要替换</p>
<ul><li>步骤1:使用正则表达式可以表示需求, 然后VScode中使用正则模式搜索,以场景2为例子是:</li></ul>
<div class="jb51code"><pre class="brush:plain;">^SET_.*_MM.*
</pre></div>
<ul><li><p>步骤2: 然后进行替换。 如果替换部分也写成SET_._MM.,将会被直接全部替换成.*而不是实际的</p></li><li><p>步骤3:(解决办法:)使用正则的()元组功能,然后将正则拆分成不同的字段,然后替换部分用$1 $2这种变量进行替换<br />举个例子:</p></li></ul>
<div class="jb51code"><pre class="brush:plain;">搜索: ^(SET_)(.*)(_MM)(.*)
替换: set_$2_mm_$4
</pre></div>
<p>其中$2表示上面第一个.*代表的字段,$4代表第二个.*代表的字段。2 和 4是根据()所代表的位置决定的。</p>
<p class="maodian"><a name="_label3"></a></p><h2>实操:</h2>
<p class="maodian"><a name="_lab2_3_0"></a></p><h3>步骤1:正则搜索</h3>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202408/2024081210351954.png" /></p>
<p class="maodian"><a name="_lab2_3_1"></a></p><h3>步骤2:撰写正确的替换变量填写</h3>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202408/2024081210351955.png" /></p>
<p class="maodian"><a name="_lab2_3_2"></a></p><h3>步骤3:替换</h3>
<p>(建议把大小写也打开就更加准确了)</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202408/2024081210351956.png" /></p>
<p class="maodian"><a name="_label4"></a></p><h2>后记</h2>
<p>VScode这个功能极好。正则匹配几乎可以涵盖一切行为。比awk、sed、python等更加直观操作方便。</p>
頁: [1]
查看完整版本: VScode中使用正则表达式替换字符串的3个步骤分享