跨行搜索替换(主要是正则表达式)虽然平时不怎么常用,但是碰到适合的场景,确实非常高效。不过这个小技巧时间一长容易忘记,加上各文本编辑器实现的不同,再次使用总是要再折腾一番,这次简单记录下,好记性不如烂笔头!假设有以下JSON Sample数据(为了方便展示,这里只有一条数据,实际场景可能是多条)。现在我需要搜索所有Friends的数据,即匹配"Friends": [XXX]这种模式的数据。
1 [ 2 { 3 "UserName": "王二", 4 "Email": "user-name@company.com", 5 "Gender": "Male", 6 "Friends": [ 7 { 8 "Name": "张三", 9 "Email": "user-name@company.com", 10 "Telephone": "021-12345678" 11 }, 12 { 13 "Name": "李四", 14 "Email": "user-name@company.com", 15 "Telephone": "021-12345678" 16 } 17 ] 18 }
19 ]
1.Sublime Text使用正则表达式: "Friends"[sS]+?]或者 "Friends"[wW]+?] 或者"Friends"[dD]+?]
2. Visual Studio Code使用正则表达式: "Friends"[sS ]+?] 或者"Friends"[wW ]+?]或者"Friends"[dD ]+?]
是的,你没看错,在使用正则表达式搜索的时候,Sublime Text中,双引号、中括号这样的特殊字符都需要转义,VS code则有的需要(中括号)有的不需要(双引号),和标准的正则表达式不同,VS code需要额外加上 才能进行多行匹配。
另外,除了使用正则表达式,Sublime Text和VS code也支持常规的多行搜索替换,Sublime Text和VS code均支持直接粘贴复制换行(文本里包括换行)和按CTRL + Enter换行。再多说一点:VS code的多文件搜索替换那是相当好用,以下是常规的多行搜索。