在PHP中拆分带有许多分隔符的preg_match

时间:2015-01-20 11:09:24

标签: php arrays split separator

我有这样的字符串数据:

$productList="
Saluran Dua(Bothway)-(TAN007);
Speedy Password-(INET PASS);
Memo-(T-Memo);
7-pib r-10/10-(AM);
FBI (R/N/M)-(Rr);
";

我怎么能拆分它们,结果是:

Array1(
[0]=>Saluran Dua(Bothway)
[1]=>Speedy Password
[2]=>Memo
[3]=>7-pib r-10/10
[4]=>FBI (R/N/M)
);

Array2(
[0]=>TAN007
[1]=>INET PASS
[2]=>T-Memo
[3]=>AM
[4]=>Rr
);

我试过preg_match_all,这是针对array1:

$separator = '/\-\(([A-z ]*)\)/';
preg_match_all($separator, $productList, $match);
$value=$match[1];

这是针对array2:

$separator2 = '/\;([A-z ]*)\-/';
preg_match_all($separator2, $productList, $desc);
$desc=$desc[1]; 

结果显示,其中一些是正确的,另一些则消失了......我相信preg_match_all中存在错误。我希望你能帮我解决..

1 个答案:

答案 0 :(得分:0)

我会建议这样的事情:

preg_match_all('(^(.*)-\((.*)\);$)m',$productList,$matches);
list(,$value,$desc) = $matches;

Live demo