2011-01-15 41 views
0

下面是一個在.net中正常工作的正則表達式,但如果我在PHP中使用它,會給我錯誤。爲什麼這個正則表達式不能在PHP中工作,但在.net中工作?

(?<=")([^"]+,[^"]+)?(?=") 

這個正則表達式應該返回什麼?

輸入:1,"x1",43,"tr","y,7"

它將返回我"y,7"在這種情況下。一般來說,如果它之間有一個逗號,它將返回""之間的任何部分。

當我試圖在PHP中使用此,我得到以下錯誤:

Unknown modifier '('

請幫助。

回答

2
~(?<=")([^"]+,[^"]+)?(?=")~ 

爲PHP(preg_*功能),你需要指定各地正則表達式iteself分隔符。它可以是!/,#,~等。

+0

甚至可以是「(...)」。這就是爲什麼PHP拋出這個錯誤,它認爲表達式是'(?<=「)'和下面的'('不是一個有效的修飾符。 –

+0

數組 ( [0] => 1,」x1「,43 , 「TR」, 「 [1] => 」 ) 陣列 ( [0] => 1,「 X1" ,43, 」TR「,」 [1] =>「 ) 我想在結果中需要「y,7」 – Mihir

+0

@Mihir:調試它,然後從頭開始重寫它 – zerkms

相關問題