2016-01-26 90 views
1

此正則表達式表達直到第一匹配分號第一次出現:匹配最多兩個字符

^[^;]*; 

然而,我想匹配到第一分號或結腸。我怎樣才能做到這一點?

回答

2

只需添加否定字符類中的字符,你要停在(你的情況冒號),在模式你提供:

^[^;:]*

此正則表達式將匹配任何數量超過;:啓動其他字符的從字符串

PS的開頭:這是另一種方式做,更貼近您的模式比Raj的(希望更容易理解你)

3

使用non-greedy形式的正則表達式。

^.*?[:;] 

添加DOTALL修飾符,如果有包含存在於任何換行符 - 之間,

(?s)^.*?[:;] 
+0

這是行不通的。 – MortalMan

+0

已更新..提供示例輸入,我的正則表達式失敗。 –