$str = "blabla and, some more blah";
$delimiters = " ,¶.\n";
$char_buff = preg_split("/(,) /", $str, -1, PREG_SPLIT_DELIM_CAPTURE);
print_r($char_buff);
Run Code Online (Sandbox Code Playgroud)
我明白了:
Array (
[0] => blabla and
[1] => ,
[2] => some more blah
)
Run Code Online (Sandbox Code Playgroud)
我能够弄清楚如何使用括号来使逗号显示在它自己的数组元素中 - 但是我如何使用多个不同的分隔符(例如,$ delimiters变量中的那些分隔符)来执行此操作?
您需要[在正则表达式上使用修饰符:
<?php
$str = "blabla and, some more blah. Blah.\nSecond line.";
$delimiters = " ,¶.\n";
$char_buff = preg_split('/([' . $delimiters . '])/', $str, -1,
PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
print_r($char_buff);
Run Code Online (Sandbox Code Playgroud)
您还需要使用,]以便在连续获得两个匹配项的位置,例如逗号后跟空格,您不会得到空匹配.
产量
Array
(
[0] => blabla
[1] =>
[2] => and
[3] => ,
[4] =>
[5] => some
[6] =>
[7] => more
[8] =>
[9] => blah
[10] => .
[11] =>
[12] => Blah
[13] => .
[14] =>
[15] => Second
[16] =>
[17] => line
[18] => .
)
Run Code Online (Sandbox Code Playgroud)
根据您正在做的事情,使用strtok可能是一种更合适的方式.