1. 程式人生 > >xcode regular expression 正則表示式查詢替換

xcode regular expression 正則表示式查詢替換

應用場景

[self presentModalViewController:imgPicker animated:YES];
在ios6已經deprecated,需要替換為其他格式
[self presentViewController:imgPicker animated:YES completion:nil];

如果程式碼中有多處程式碼,一處一處修改實在費力。這個時候正則表示式就派上用場

查詢

首先從這段程式碼中提取出特徵資訊,可以鎖定這行程式碼

presentModalViewController: animated:

那麼其中的引數怎麼辦呢,使用模糊匹配

presentModalViewController:(.*) animated:(.*)

注意.*會把後面的所有字元匹配到,這是我們不希望看到的,因此需要加一個限制,表示匹配結束

presentModalViewController:(.*) animated:(.*)\]

其中,]是方法的配對括號的後半個,\]用來表示.*的匹配結束。(注意,由於]在正則表示式中有特殊含義,所以\]進行轉義)

這樣,就可以匹配到類似格式的呼叫方法

替換

根據匹配結果,需要進行對應替換。.*匹配到的內容怎麼呼叫呢?使用 $$1表示第一個匹配表示式,$2表示第二個匹配表示式,以此類推

presentViewController:$1 animated:$2 completion:nil]

這樣,就可以批量替換表示式了