Регулярное выражение для предложений - PullRequest
0 голосов
/ 08 ноября 2018

Мое регулярное выражение хорошо работает, когда после точки стоит пробел.

$str = 'Fry me a Beaver. Fry me a Beaver! Fry me a Beaver? Fry me Beaver no. 4?! Fry me many Beavers... End';

$sentences = preg_split('/(?<=[.?!])\s+(?=[a-z])/i', $str);

Но мне нужно, чтобы оно также работало, когда после точки стоит \n.

$str = 'Fry me a Beaver. Fry me a Beaver!\nFry me a Beaver? Fry me Beaver no. 4?! Fry me many Beavers... End';

Я не могу добавить \n к обычному.

1 Ответ

0 голосов
/ 08 ноября 2018

Вы можете просто добавить \\n, прикованный к вашему \s с помощью ИЛИ (|):
/(?<=[.?!])\s+|\\n+(?=[a-z])/i

Это можно увидеть работающим здесь .

...