1

文字列を文字の配列で分割したいのですが、どうすればよいですか?preg_splitが配列ではなく文字列入力を受け取ることに気づきました。

たとえば、これが私の配列です。

$splitting_strings = array(".", ";", "-", "and", "for");

$text = "What a great day, and I love it. Who knows; maybe I will go.";

$result = array (
0 => "What a great day",
1 => "I love it",
2 =>  "Who knows",
3 => "maybe I will go");
4

1 に答える 1

2

あなたは以下を渡すことができpreg_split()ます:

$regex = '/(' . implode('|', $splitting_strings) . ')/';

などの特殊な正規表現文字はエスケープする必要があります.。したがって、代わりに次のような結果になるはずです。

// run through each element in the array escaping any
// special regex chars
$splitting_strings = array_map(function($string) {
                                   return preg_quote($string);
                               }, $splitting_strings);

$regex = '/(' . implode('|', $splitting_strings) . ')/';
$final_array = preg_split($regex, $splitting_strings);

$final_array結局のところ、この出力は次のとおりです。

array(5) {
  [0]=>
  string(18) "What a great day, "
  [1]=>
  string(10) " I love it"
  [2]=>
  string(10) " Who knows"
  [3]=>
  string(16) " maybe I will go"
  [4]=>
  string(0) ""
}
于 2012-05-21T09:56:32.627 に答える