Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 什么正则表达式与此模式匹配?_Php_Regex - Fatal编程技术网

Php 什么正则表达式与此模式匹配?

Php 什么正则表达式与此模式匹配?,php,regex,Php,Regex,我正在使用PHPpreg\u match\u all解析模式,比如:key1:value1,key2:value2我使用preg集顺序到达这个正则表达式([\w-\u]+)\ s?:\s?([^,]*)~I它工作正常,返回的数组是[[key1:value1',key1',value1'],[key2:value2',value2'] 但是如果我想匹配包含,的文本,那么要使用文本必须用反斜杠\,在正则表达式中有没有方法跳过[^,]分隔符(如果是\,) 使用交替运算符贪婪地匹配转义逗号 ~([\w-

我正在使用PHP
preg\u match\u all
解析模式,比如:
key1:value1,key2:value2
我使用
preg集顺序到达这个正则表达式
([\w-\u]+)\ s?:\s?([^,]*)~I
它工作正常,返回的数组是
[[key1:value1',key1',value1'],[key2:value2',value2']


但是如果我想匹配包含
的文本,那么要使用文本必须用反斜杠
\,
在正则表达式中有没有方法跳过
[^,]
分隔符(如果是
\,

使用交替运算符贪婪地匹配转义逗号

~([\w-_]+)\s?:\s?((?:\\,|[^,])*)~i

使用交替运算符贪婪地匹配转义逗号

~([\w-_]+)\s?:\s?((?:\\,|[^,])*)~i

这个JSON是偶然出现的吗(
{key1:value1,key2:value2}
)?如果是这样,只需使用
json\u decode($str)
@MartinKonecny是正确的。您应该使用为该作业制作的解析器。如果您自己已经用这种方式格式化了数据,那么您应该选择一种PHP可以解析的格式。当有了坚实的解决方案时,再发明轮子是没有意义的。这个JSON是偶然出现的吗(
{key1:value1,key2:value2}
)?如果是这样,只需使用
json\u decode($str)
@MartinKonecny是正确的。您应该使用为该作业制作的解析器。如果您自己已经用这种方式格式化了数据,那么您应该选择一种PHP可以解析的格式。当有固溶体存在时,再发明轮子是没有意义的。