2013-02-11 64 views
2

我是使用正則表達式的初學者,而且我正在尋找一種模式,該模式可以通過前面沒有星號的冒號分割字符串。由不以星號爲首的冒號拆分

我發現了以下模式,我認爲會工作,但沒有。

[^:]+\\*:[^:]+ 

(該\*被轉義的Objective-C的編譯工作)

我需要做什麼改變嗎?

回答

6

您需要使用negative look-behind

(?<![*]): 

此正則表達式匹配不是前面有一個colon(:) - >(?<!..)一個* - >[*]。在角色類中使用*,它會失去意義,並且只匹配*

0

不是星號的單個字符可以這樣表示:[^*]。這將星號放入一個字符類,它沒有特殊的含義。開頭的括號後的脫字符否定角色類。

匹配這是由什麼不是一個星號然後可以簡單地寫爲[^*]:

得到公正的位置的目的,冒號冒號,把它變成一組本身:[^*](:)