vscode 的正则文字搜索与替换用法小结

vscode 的正则文字搜索与替换用法小结

[visual studio code][1] 是一款通用编辑器,功能强大,扩展丰富,而且免费。日常工作中,常可以利用 vscode 来处理文字,其利用 [ripgrep][2] 1实现了急速的正则搜索与替换。在实际工作当中,有些时候需要使用一些特别的文字操作,比如下面一段文字是《曹全碑》字帖的文字,需要每隔 7个字嵌入一个空格,并且每隔三段文字换行一次,这样形成的篇章,正好与字帖照片相符。

《曹全碑》部分文字如下:
君諱全字景完敦煌效穀人也其先蓋周之冑武王秉乾之機翦伐殷商既定爾勳福祿攸同封弟叔振鐸于曹國因氏焉秦漢之際曹參夾輔王室世宗廓土斥竟子孫遷于雍州之郊分止右扶風或在安定或處武都

首先进行每21个字换行处理:

  • 搜索:(.{21}) ( . 表示任意字符, {21} 表示重复21次, 括弧表示这是一个整体)
  • 替换为:$1\n ($1 代表前面用括弧扩起来的整体部分2

然后进行每7个字加空格处理

  • 搜索:([^ ]{7}) ([^ ] 表示除了空格之外的所有字符,其实这里也可以用 . 来实现同样功能)
  • 替换为:$1 (注意最后面有个空格)

这样就形成下面的成果:

    乾之機翦伐殷商 既定爾勳福祿攸 同封弟叔振鐸于 
    曹國因氏焉秦漢 之際曹參夾輔王 室世宗廓土斥竟 
    子孫遷于雍州之 郊分止右扶風或 在安定或處武都

这里有一点需要注意,就是完整搜索功能是较新版本的 vscode 才有,当前(2018年8月)最新版本是 1.26.1,支持回车(\n)等特殊字符,支持搜索样式结果占位符($1、$2 等)。

详细的正则表达式搜索规则,请参考[MDN JavaScript 正则表达式手册][3] 或者 [ECMAScript 5 文档][4],以及 stackoverflow 上的回答
[1]: https://code.visualstudio.com
[2]: https://github.com/BurntSushi/ripgrep
[3]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
[4]: https://www.ecma-international.org/ecma-262/5.1/


  1. 参考 vscode 文档 ↩︎

  2. 参考 $ 的语法定义 ↩︎

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值