В шаблоне (?=[A-Z][a-z]+[A-Z])
утверждается, что справа находится один верхний регистр AZ, 1+ кратный строчный AZ, а затем снова верхний регистр AZ.
Это не будет разделяться до Aanleiding
, потому чтоне является конечным верхним регистром.
Что вы можете сделать, это опустить [A-Z]
в конце вашего паттерна и добавить положительный взгляд за (?<=[a-z])
, чтобы проверить строчный символ az.
Шаблон может выглядеть так:
(?<=[a-z])(?=[A-Z][a-z])
Regex demo | Php demo
$text = "... Aanpassing aanvullend verkeersreglement. Advies - GoedkeuringMotiveringAanleiding en contextDe Zakstraat in het district ...";
$matches = preg_split('/(?<=[a-z])(?=[A-Z][a-z])/', $text, -1, PREG_SPLIT_NO_EMPTY);
print_r($matches);
Выход
Array
(
[0] => ... Aanpassing aanvullend verkeersreglement. Advies - Goedkeuring
[1] => Motivering
[2] => Aanleiding en context
[3] => De Zakstraat in het district ...
)