2011-10-19 22 views
0

在xCode中,我想查找不是來自前一行{前一行的前綴的NSLog語句。正則表達式來尋找NSLog,但不是{ r。* NSLog

所以我想找不到:

if (debug) { 
    NSLog(@"MyDebug"); 
} 

,只有找到。

x=y+3; 
    NSLog(@"MyDebug %d",x); 

我的想法是這樣的:(?<!\{\r.*NSLog).*NSLog(?<!\{)\r.*NSLog(?!\{)但似乎沒有得到我任何東西。

+1

AFAIK,Xcode正則表達式不能跨行匹配。您可以在替換中添加新行,但無法在模式中跨行匹配。其他工具並不侷限於此;也許嘗試grep? –

+0

如果我正確閱讀,多行('\ n')將於2015年開始工作。 –

回答

2

正如Jeremy在評論中提到的,Xcode不支持匹配多行的正則表達式。然而,根據在Xcode中,用戶線程this message,您可以搜索使用非正則表達式搜索換行符:

Xcode的查找和項目找到不支持多行正則表達式 。它們支持多行文本查找...

(在線程A subsequent message表明您可以使用選項鍵入一個換行符 - 回報

如果你知道上面的行您希望匹配的那個將始終以;結尾,您可以在非正則表達式搜索中利用它。

至於grep,不幸的是它並不真的喜歡match multiple lines。 pcregrep可能更有用。

+0

不完美,因爲兩者之間存在可變數量的空格; 和NSLOG,但它更接近..謝謝! – scooter133

+0

如果我正確閱讀,多行('\ n')將於2015年開始工作。 –