" Day":6月8日至10月,"地点":美国,"城市":Newyork
我需要匹配3场比赛:
2012年6月8日至10日
US
纽约
答案 0 :(得分:0)
根据我上面的评论,如果这是JSON,你肯定应该使用这些功能,因为它们更适合这个。
但是,您可以使用以下REGEX。
/:([a-zA-Z0-9\s-]*)/g
<?php
preg_match('/:([a-zA-Z0-9\s-]*)/', '"Day":June 8-10-2012,"Location":US,"City":Newyork', $matches);
print_r($matches);
正则表达式演示在这里:
答案 1 :(得分:0)
以下是一些简单的方法:
代码:(Demo)
$string='"Day":June 8-10-2012,"Location":US,"City":Newyork';
var_export(preg_match_all('/:\K[^,]+/',$string,$out)?$out[0]:'fail');
echo "\n\n";
var_export(preg_split('/,?"[^"]+":/',$string,NULL,PREG_SPLIT_NO_EMPTY));
输出:
array (
0 => 'June 8-10-2012',
1 => 'US',
2 => 'Newyork',
)
array (
0 => 'June 8-10-2012',
1 => 'US',
2 => 'Newyork',
)
Pattern #1 Demo \K
在:
之后重新开始匹配,以便可以避免积极的观察(保存&#34;步骤&#34; /提高模式效率)通过匹配所有后续字符这不是逗号,可以避免捕获组(保存&#34;步骤&#34; /提高模式效率)。
Patter #2 Demo ,?
使逗号可选,并限定领先的双引号&#34;键&#34;匹配(拆分)。要拆分的目标子字符串将匹配完整的&#34;键&#34; substring并以下列:
冒号结束。