2016-07-29 94 views
0

我試圖捕捉到一個字符串的部分有一個像這樣得到的數據:PCRE正則表達式捕捉到了這個字符串

name#foo|bar:str1,str2,str3 
anothername#bar|zar 

其中輸入字符串的格式爲:name#foo|bar:str1,str2,str3,anothername#bar|zar

問題是將anothername與前面的參數分開,因爲它仍然使用逗號來分隔它。

我已經嘗試了一個超前和也沒有運氣的子模式!

preg_match_all('/([^,]+#.+(?:[^,]+#)?)/', $input, $matches, PREG_SET_ORDER); 
+2

['([^,] +?#。*?(?=,[^,] +?#| $))'](https://regex101.com/r/aN9sQ4/1 ) – Siguza

回答