0

区切り文字の配列で文字列を分割し、区切り文字が何であったかについてのフィードバックも取得したいと思います。

例:
$mystring = 'test+string|and|hello+word';
$result = preg_split('/\+,|/+', $mystring);

次のような配列を返したいと思います
$return[0] = array('test','+');
$return[1] = array('string','|');

事前にt​​hnx

4

2 に答える 2

3

preg_split()のPREG_SPLIT_DELIM_CAPTUREオプションを見てください

編集

例:

$mystring = 'test+string|and|hello+word';
$result = preg_split('/([\+|,])/', $mystring, null, PREG_SPLIT_DELIM_CAPTURE);
于 2010-09-23T10:10:46.913 に答える
0

PREG_SPLIT_DELIM_CAPTURE私は私の答えを書く前に知りませんでした。を使用するよりも間違いなく明確ですpreg_match_all

<?php
$s = 'a|b|c,d+e|f,g';
if (preg_match_all('/([^+,|]+)([+,|])*/', $s, $matches)) {
  for ($i = 0; $i < count($matches[0]); $i++) {
    echo("got '{$matches[1][$i]}' via delimiter '{$matches[2][$i]}'\n");
  }
}
于 2010-09-23T10:20:00.560 に答える