Цель моего регулярного выражения — разбить любой пробел в юникоде, исключая символ новой строки, и убедиться, что символ новой строки добавлен к предыдущему символу, не являющемуся юникодом. В настоящее время я вижу эту работу, но только для одиночных пробельных символов до \ n.
Используя мой текущий Regex:
$data = "the\nquick\n brown fox jumped \nover the lazy dog.";
$tokenized = preg_split("~(?<=\n)|\p{Z}+(?!\n)~u", $data, -1, PREG_SPLIT_OFFSET_CAPTURE);
Текущий результат (я добавил \ n, где присутствует символ «\ n»):
Array
(
[0] => Array
(
[0] => the\n
[1] => 0
)
[1] => Array
(
[0] => quick\n
[1] => 4
)
[2] => Array
(
[0] =>
[1] => 10
)
[3] => Array
(
[0] => brown
[1] => 11
)
[4] => Array
(
[0] => fox
[1] => 17
)
[5] => Array
(
[0] => jumped
[1] => 21
)
[6] => Array
(
[0] => \n
[1] => 31
)
[7] => Array
(
[0] => over
[1] => 33
)
[8] => Array
(
[0] => the
[1] => 38
)
[9] => Array
(
[0] => lazy
[1] => 42
)
[10] => Array
(
[0] => dog.
[1] => 47
)
)
Ожидаемый результат:
Array
(
[0] => Array
(
[0] => the\n
[1] => 0
)
[1] => Array
(
[0] => quick\n
[1] => 4
)
[2] => Array
(
[0] => brown
[1] => 10
)
[3] => Array
(
[0] => fox
[1] => 16
)
[4] => Array
(
[0] => jumped\n
[1] => 20
)
[5] => Array
(
[0] => over
[1] => 27
)
[6] => Array
(
[0] => the
[1] => 32
)
[7] => Array
(
[0] => lazy
[1] => 36
)
[8] => Array
(
[0] => dog.
[1] => 41
)
)
Любой совет с благодарностью. Благодарю.
Задача ещё не решена.
Других решений пока нет …