我正试图捕获字符串的各个部分,以获得如下的结果数据:
name#foo|bar:str1,str2,str3
anothername#bar|zar
其中输入字符串的形式为:name#foo|bar:str1,str2,str3,anothername#bar|zar
问题是anothername
与前面的args的分离,因为它仍然使用逗号来分隔它
我尝试过前瞻性,也尝试过子模式,但没有成功!
preg_match_all('/([^,]+#.+(?:[^,]+#)?)/', $input, $matches, PREG_SET_ORDER);
这个大约快4倍。
[^,#]++#(?:[^,#]++(?:,[^,#]++)*)(?=,|$)