2012-02-29 155 views

回答

9

這裏有兩個正則表達式。第一個是:

\G # the end of the previous match 
".*?" # something in quotes 
(,|$) # and a comma, or the end of the string 

如果第一個失敗,第二次將被匹配:

\G # the end of the previous match 
[^,]* # anything up to the next comma or end of string 
(,|$) # and then a comma, or the end of the string 

我的猜測是兩個正則表達式的設計,以配合一些東西,可以被引用或不引用,並可能會在逗號後跟着一些更多的項目。

(該c修飾符意味着保持當前的位置,如果匹配不成功,所以\G錨不會在第二次嘗試,如果第一個匹配失敗而改變。該g修飾符設置爲下一個用於\G位置匹配 - 等等)。

0

第一個表示匹配引號後面跟隨逗號或字符串結尾的每個字符串(即/gc)。第二種意思是匹配0或更多(即*)非逗號字符(即[^,])的任何序列。請注意,\G修飾符意味着每個新比賽必須在上一場比賽之後立即開始。

相關問題