在 PHP 中使用许多分隔符拆分preg_match


Split preg_match with many separator in PHP

我有这样的字符串数据:

$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,这是针对数组 1:

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

这是针对阵列 2 的:

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

结果显示出来了,其中一些是对的,另一些消失了..我相信preg_match_all是错误的,我希望你能给我解决方案。

我会建议这样的事情:

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

现场演示