跨行搜索替換(主要是正則表達式)雖然平時不怎么常用,但是碰到適合的場景,確實非常高效。不過這個小技巧時間一長容易忘記,加上各文本編輯器實現的不同,再次使用總是要再折騰一番,這次簡單記錄下,好記性不如爛筆頭!假設有以下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的多文件搜索替換那是相當好用,以下是常規的多行搜索。