1

假设我有一个这样的字符串:

Ch #RoKamb93 ajesop de Bourg #kin #kinnl 9 kunsho taffetas,bunughs rges,note Florale,parfaite aseref

我的分隔符数组可以是:

array('#kin', '#kinnl', '#xxx' );

如何解析它以获取Ch #RoKamb93 ajesop de Bourg子字符串?#kin#kinnl之前的子字符串

注意:#kin#kinnl可能不会同时出现。

4

1 回答 1

1

这个怎么样:

$string = 'Ch #RoKamb93 ajesop de Bourg #kin #kinnl 9 kunsho taffetas,bunughs rges, note florale,parfaite aseref';

$delimiters = array('#kin', '#kinnl', '#xxx');
$pattern = '/' . implode($delimiters, '|') . '/';

$split = preg_split($pattern, $string);
var_dump($split); // $split[0] has what you need

如果您的分隔符包含保留的正则表达式字符(如.?),您需要对模式执行以下操作:

$pattern = '/' . implode(array_map('preg_quote', $delimiters), '|') . '/';
于 2013-09-05T10:45:44.727 回答