PHP разрывает строку за точкой, если следующий символ является пробелом или заглавным буквенным символом - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть параграф, который выглядит следующим образом:

Lorem Ipsum - это просто (не 1.2% ) фиктивный текст печатного и верстальщика y.L orem Ipsum был стандартным фиктивным текстом в отрасли с 1500-х годов, когда неизвестный принтер взял камбуз типа и скремблировал его, чтобы получить типовой образец boo k.I t пережил не только пять веков, но и скачок в электронном наборе текста, оставаясь практически неизменным.I t был популяризирован в 1960-х годах

Я хочу разбить это на фараграфе по фразам, оканчивающимся точкой ., но только тогда, когда эта точка находится в конце фразы, а не всередина (например, 1.2%) и когда после него стоит символ UPPERCASE (и, возможно, также пробел).Например, если я использую:

$arr = explode('.', $paragraph);

, он будет разбивать этот абзац при каждом появлении этого ..

Существует ли быстрый и чистый способ получить это?Если да, может кто-нибудь, пожалуйста, помогите мне понять это?

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Используйте preg_split('/\.[\s|$]/', $input_line);.

Это разделит на точку и либо пробел или новую строку.

https://www.phpliveregex.com/p/qiC
https://3v4l.org/FOaHu

0 голосов
/ 12 декабря 2018

Используйте регулярное выражение для сопоставления с точкой, которая находится перед заглавным символом или пробелом, и используйте preg_split() для разбиения строки на основе совпадения с регулярным выражением.

$arr = preg_split("/\.\s?(?=[A-Z])/", $paragraph);

Проверьте результат в демонстрации

...