跨行搜索替换(主要是正则表达式)虽然平时不怎么常用,但是碰到适合的场景,确实非常高效。不过这个小技巧时间一长容易忘记,加上各文本编辑器实现的不同,再次使用总是要再折腾一番,这次简单记录下,好记性不如烂笔头!
跨行搜索替换(主要是正则表达式)虽然平时不怎么常用,但是碰到适合的场景,确实非常高效。不过这个小技巧时间一长容易忘记,加上各文本编辑器实现的不同,再次使用总是要再折腾一番,这次简单记录下,好记性不如烂笔头!假设有以下JSON Sample数据(为了方便展示,这里只有一条数据,实际场景可能是多条)。现在我需要搜索所有Friends的数据,即匹配
"Friends": [XXX]
这种模式的数据。
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的多文件搜索替换那是相当好用,以下是常规的多行搜索。