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 に答える