使用数组中的任何单词拆分字符串

时间:2013-09-05 10:35:19

标签: php regex preg-match

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

  

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 可能不会同时出现。

1 个答案:

答案 0 :(得分: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), '|') . '/';