Php字符串基于与字符串条件匹配的字符来爆炸字符串

nor*_*er 5 php regex arrays explode

我有这样的字符串:

$string1 = '35 Hose & Couplings/350902 GARDEN HOSE COUPLING, PVC, 16\/19 MM"';

$string2 = '35 Hose & Couplings/350904 GARDEN HOSE TAP CONNECTOR, PVC, 3\/4" FEMALE THREAD"';
Run Code Online (Sandbox Code Playgroud)

我试图将字符串分开并将其转换为如下数组:

$name1 = explode('/', $string1);
$name1 = trim(end($name1));
$name2 = explode('/', $string2);
$name2 = trim(end($name2));

/*
 #results
 $name1[0] = '35 Hose & Couplings';
 $name1[1] = '350902 GARDEN HOSE COUPLING, PVC, 16\';
 $name1[2] = '19 MM"';
 ...
 #expected results
 $name1[0] = '35 Hose & Couplings';
 $name1[1] = '350902 GARDEN HOSE COUPLING, PVC, 16\/19 MM"';
 ...
*/
Run Code Online (Sandbox Code Playgroud)

我想在/只有它时爆炸字符串,但是当它遇到\/它时不应该爆炸字符串,我的代码仍然会爆炸它包含的字符串\/,有没有办法做到这一点?

tri*_*cot 3

您可以使用带有负向后查找的正则表达式:

$parts = preg_split('~(?<!\\\\)/~', $string1);
Run Code Online (Sandbox Code Playgroud)

请参阅eval.in上的示例