2011-11-08 24 views
1

我有一個在XCode中有很多目標的項目。我想定製我的查找並只選擇一個目標文件。XCode搜索:如何創建匹配正則表達式(正則表達式)來選擇正確的文件

我的程序有文件的代碼是這樣的:

  1. 所有目標使用
  2. 全球的設備全球文件(iPad或iPhone)
  3. 特定於該目標

所以,對於情況1,文件名是這樣的:

SCName1.m 
SCOtherGlobal.m 

案例2:

SCiPhoneFile1.m 
SCiPhoneFile2.m 
SCiPadFile.m 
SCiPadFile2.m 

案例3:

SCiPhoneAAFile1.m 
SCiPadABFile1.m 
SCiPadABOtherFile.m 

所以,對於一個目標,我想創建一個正則表達式搜索與文件:

SC* OR SCiPhone* OR SCiPhoneAA* 

越完整的方式是

(SC* AND NOT(SCiPhone*) AND NOT(SCiPad*)) OR 
(SCiPhone* AND NOT(SCiPad*) AND NOT(SCiPhoneAB*)) OR 
(SCiPhoneAA*) 

我是正則表達式中的新手,我的表達式不起作用。我的邏輯是正確的?有人知道創建正確的正則表達式嗎?

回答

3

既然你的願望是匹配具有共同元素的文件名,我認爲最有效的方式(如果不是唯一的方法)做到這一點是使用排除(即,不屬於iPad的文件任何方式或文件不屬於該iPhoneAB設備,但是任何人都很好

因此,對於這些輸入:

SCName1.m 
SCOtherGlobal.m 
SCiPhoneFile1.m 
SCiPhoneFile2.m 
SCiPadFile.m 
SCiPadFile2.m 
SCiPhoneAAFile1.m 
SCiPhoneABFile2.m 
SCiPadABFile1.m 
SCiPadABOtherFile.m 

我可以匹配這些文件:

SCName1.m 
SCOtherGlobal.m 
SCiPhoneFile1.m 
SCiPhoneFile2.m 
SCiPhoneAAFile1.m 

使用這個表達式(它使用負面預測):

SC(?!iPad|iPhoneAB)[^.]*\.m 

我希望這對你有用!另外,如果您願意,我可以爲您解決這個問題:D

+0

GREAT !!這工作非常好:) – Rodrigo