2011-01-29 53 views
0

我正在使用此RegEx匹配冒號前的單詞。除非以連字符開頭,否則匹配冒號前的單詞

([^\s]+)\: 

不過,我將如何改變這種做法,它只會匹配字如果行用連字符/破折號開始?

編輯

應符合:

 [object doSomething:foo]; 

如果不匹配:

- (void)doSomething:(NSString *)string; 

回答

0
^[^:-].*?:\s* 

應該這樣做。 (假設DOT_ALL改性劑不被使用。)

[^:-] // One char, not a hyphen or colon 
.*? // Perhaps more, non-greedy 
:\s* // Colon and optionally spaces 

埃爾戈:至少有一個字符的第一個冒號之前。第一個字符不能是連字符或冒號。

或者^[^:-][^:]*:\s*如果您發現更容易閱讀。


編輯
根據意見,這是解決什麼問題有機磷:

^([^:-][^:]*): 
1

在多行模式下試試這個正則表達式:

^[^\r\n:-][^\r\n:]*:\s* 
+0

不,似乎並沒有爲我工作。我正在使用http://regexpal.com/進行測試。 – Joshua 2011-01-29 17:49:58

+0

@Joshua:編輯它。 – Gumbo 2011-01-29 17:50:24

相關問題