认真做饭 發表於 2024-5-11 11:19:23

VsCode中常用的一些正则表达式操作方法

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">1.光标选中搜索到的内容</a></li><li><a href="#_label1">2.内容多选</a></li><li><a href="#_label2">3.选中从xxx字符到xxx字符的所有内容</a></li><li><a href="#_label3">总结</a></li></ul></div><blockquote><p>在vscode中可以使用正则表达式来进行搜索内容,极大的方便了我们对大量数据中需要查看的信息进行筛选,使用正则搜索时点击 .*</p>
<p>此文章会持续补充常用的正则操作</p></blockquote>
<p class="maodian"><a name="_label0"></a></p><h2>1.光标选中搜索到的内容</h2>
<p>将搜索的内容进行全选,举例:在如下文件中我需要对NO字符进行搜索,并且选中所有的NO</p>
<p>选中所有匹配项快捷键:alt + enter</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202405/2024051111170934.png" /></p>
<p class="maodian"><a name="_label1"></a></p><h2>2.内容多选</h2>
<p>举例:如下文件中我需要同时选中NO和BIC字符,这时普通的搜索就无法同时选中了,我们可以使用正则搜索就能进行多条内容匹配</p>
<p>正则匹配多条内容:通过 | 符号来匹配多条内容,如下为NO|BIC</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202405/2024051111170935.png" /></p>
<p class="maodian"><a name="_label2"></a></p><h2>3.选中从xxx字符到xxx字符的所有内容</h2>
<p>举例:如下文件中我需要选中所有从OK开头的行</p>
<p>正则语法:OK(.*)</p>
<p>(.*)表示匹配到该行最后</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202405/2024051111170936.png" /></p>
<p>也可以往前匹配</p>
<p>举例:如下文件中选中 * 前的内容</p>
<p>正则语法:(.*)\*</p>
<p>这里匹配 * 的话需要进行符号转译,在特殊符号加 \ 进行转译</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202405/2024051111171037.png" /></p>
<p>看完前面两步应该也能猜到可以进行范围匹配</p>
<p>示例:如下文件中选中从 + 到 * 之间的内容再加上空格后的内容</p>
<p>正则语法:\+(.*)\*| (.*)</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202405/2024051111171038.png" /></p>
<p>是不是很简单就掌握了正则匹配,以后遇到要修改某些有相同内容的字段再也不用一句一句复制粘贴去修改了,灵活使用正则匹配选中进行修改能够节省大量时间</p>
<p><strong>注意事项:在VSCode中使用时,要先把通配符开关打开(开关是查找输入框右边的&quot;.*&quot;符号)</strong></p>
<table><tbody><tr><th>转义字符</th><th>匹配内容</th></tr><tr><td>\t</td><td>tab</td></tr><tr><td>\r</td><td>回车符号\r</td></tr><tr><td>\n</td><td>换行符号\n</td></tr><tr><td>\</td><td>特殊符号转义,如&quot;*&quot; ,转义后匹配的是字符&quot;*&quot;, &ldquo;(&rdquo; 匹配的是括号&quot;(&quot;</td></tr><tr><td>[字符序列]</td><td>匹配[ ]中的任意字符,如,字符a和字符e均匹配</td></tr><tr><td>[^字符序列]</td><td>匹配不在[ ]中的任意字符,如[^ae]除了a和e,其他字符都匹配</td></tr><tr><td>[字符1-字符2]</td><td>匹配在[ ]之间的任意字符,如,就是匹配a和x之间的所有字符(包括a和x)</td></tr><tr><td><strong>.</strong></td><td>匹配任意单个字符(除了\n)</td></tr><tr><td>\w</td><td>匹配所有单词字符(如&quot;a&quot;,&ldquo;3&rdquo;,&ldquo;E&rdquo;,但不匹配&quot;?&quot;,&quot;.&quot;等)</td></tr><tr><td>\W</td><td>和\w相反,匹配所有非单词字符</td></tr><tr><td>\s</td><td>匹配空格</td></tr><tr><td>\S</td><td>和\s相反,匹配非空格</td></tr><tr><td>\d</td><td>匹配数字字符,如&quot;1&quot;,&ldquo;4&rdquo;,&quot;9&quot;等</td></tr><tr><td>\D</td><td>和\d相反,匹配除了数字字符外的其他字符</td></tr><tr><td>*</td><td>将前面的元素匹配0到多次,如&quot;\d*.\d&quot;,可以匹配&quot;19.9&quot;,&quot;.0&quot;,&ldquo;129.9&rdquo;</td></tr><tr><td>+</td><td>将前面的元素匹配1到多次,如&quot;be+&quot;,可以匹配&quot;be&quot;, &ldquo;beeeeee&rdquo;</td></tr><tr><td>?</td><td>将前面的元素匹配0次或者一次,如&quot;rai?n&quot; 可以且只可以匹配 &ldquo;ran&rdquo; 或者 &ldquo;rain&rdquo;</td></tr><tr><td>{n}</td><td>n是个数字,将前面的元素匹配n次,如&quot;be{3}&ldquo;可以且只可以匹配 &rdquo;beee&rdquo;</td></tr><tr><td>{n, m}</td><td>将前面的元素匹配至少n次,最多m次,如&quot;be{1,3}&quot; 可以且只可以匹配&quot;be&quot;,&ldquo;bee&rdquo;, &ldquo;beee&rdquo;</td></tr><tr><td>|</td><td>相当于&quot;或&quot;,表示匹配由</td></tr></tbody></table>
<p class="maodian"><a name="_label3"></a></p><h2>总结</h2>
頁: [1]
查看完整版本: VsCode中常用的一些正则表达式操作方法