使用Sublime和Visual Studio Code跨行搜索替换文本
跨行搜索替换(主要是正则表达式)虽然平时不怎么常用,但是碰到适合的场景,确实非常高效。不过这个小技巧时间一长容易忘记,加上各文本编辑器实现的不同,再次使用总是要再折腾一番,这次简单记录下,好记性不如烂笔头!假设有以下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\"[\s\S]+?\]或者 \"Friends\"[\w\W]+?\] 或者\"Friends\"[\d\D]+?\]
2. Visual Studio Code使用正则表达式: "Friends"[\s\S\r]+?\] 或者"Friends"[\w\W\r]+?\]或者"Friends"[\d\D\r]+?\]
是的,你没看错,在使用正则表达式搜索的时候,Sublime Text中,双引号、中括号这样的特殊字符都需要转义,VS code则有的需要(中括号)有的不需要(双引号),和标准的正则表达式不同,VS code需要额外加上\r才能进行多行匹配。
另外,除了使用正则表达式,Sublime Text和VS code也支持常规的多行搜索替换,Sublime Text和VS code均支持直接粘贴复制换行(文本里包括换行)和按CTRL + Enter换行。再多说一点:VS code的多文件搜索替换那是相当好用,以下是常规的多行搜索。