作者jasonlee1001 (Jason)
看板Editor
标题[vim ] 问题请教
时间Fri Oct 30 11:09:30 2020
请问大家:
我想 search/replace 条件如下:
把 IODIN[7] --> 换成 IODIN_7_
就是把所有 "[", "]" 换成 "_"
但又不会破坏中括号前面和後面的字元.
我使用如下:
%s/[A-Za-z0-9]\[/_/g
但这就把 [ 前面的 N 替代掉了.
不能只搜寻 "[" , 我要 "[" 前面紧跟着A-Za-z0-9的才要换成 "_"
但如何能不破坏 "[" 前面的字元呢 ?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 42.73.3.220 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Editor/M.1604027372.A.6B0.html
1F:推 as23041248: 把整串IODIN[7]拿去换成IODIN_7_ 那就行了呀 10/30 11:47
2F:推 akria: %s/[A-Za-z0-9]\zs\[\(.*\)\]/_\1_/g 10/30 12:07
3F:推 akria: 这个比较好 %s/[A-Za-z0-9]\zs\[\([^]]*\)\]/_\1_/g 10/30 12:09
4F:→ jasonlee1001: 谢谢akria大大! 10/30 21:39