Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP

Войти
Регистрация
Восстановить пароль
 
 
Риназ
18 / 1 / 0
Регистрация: 16.06.2017
Сообщений: 314
#1

Как найти предложения, которые начинаются с большой буквы? - PHP

11.05.2018, 22:46. Просмотров 156. Ответов 16
Метки нет (Все метки)

Всем привет! Есть текст и каждое предложение начинается с большой буквы, но в конце нет точки.
Пример:
Тут какой-то текст И тут какой-то текст Это другой текст

Как разделить эти предложения и поместить в массив?
Например:
$text[0] - Тут какой-то текст
$text[1] - И тут какой-то текст
$text[2] - Это другой текст
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2018, 22:46
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как найти предложения, которые начинаются с большой буквы? (PHP):

Кто как думает про алгоритм изменения названия улиц с большой буквы? - PHP
Добрый день, Какой алгоритм был бы наиболее простым и удобным, если у нас есть массив, список слов: светофоры на улице строителей...

Вывод строк, которые начинаются с определенной буквы. - PHP
Мне нужно вывести из базы данных только те строки которые начинаются с оперделенной буквы. Можно конечно вывести все и потом выбрать из...

Запись в базу с большой буквы - PHP
Здравствуйте, такая проблема, при регистрации человек может написать свое имя с маленькой буквы как сделать чтобы имя записывалось в базу с...

Подсчет количества слов, которые начинаются с гласных букв - PHP
Добрый день! Помогите, пожалуйста!!! Задали лабу по PHP. Задание: подсчитать количество слов в тексте, которые начинаются на гласные и...

Определить количество слов, которые начинаются и заканчиваются одной и той же буквой. - PHP
Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить количество слов, которые начинаются и...

Функция rename не меняет имена файлов которые начинаются с "-" - PHP
Уважаемые. Есть код: $dir = 'C:/img'; $png_jpg = scandir($dir); unset ($png_jpg); unset ($png_jpg); shuffle($png_jpg); ...

16
Lazy_Den
2890 / 2569 / 1029
Регистрация: 15.01.2014
Сообщений: 5,625
11.05.2018, 23:05 #2
PHP
1
2
3
<?php
$str = 'Тут какой-то текст И тут какой-то текст Это другой текст';
$arr = preg_split('/\s(?=[А-ЯЁA-Z])/u', $str);
0
Риназ
18 / 1 / 0
Регистрация: 16.06.2017
Сообщений: 314
12.05.2018, 06:25  [ТС] #3
Lazy_Den, не работает. Пробовал вывести на экран, но пусто
0
Lazy_Den
2890 / 2569 / 1029
Регистрация: 15.01.2014
Сообщений: 5,625
12.05.2018, 10:36 #4
Цитата Сообщение от Риназ Посмотреть сообщение
не работает
Оно-то работает, но возможно, что вы не обо всём рассказали. Показывайте реальный участок текста и код, относящийся к задаче.
0
Риназ
18 / 1 / 0
Регистрация: 16.06.2017
Сообщений: 314
12.05.2018, 10:54  [ТС] #5
Цитата Сообщение от Lazy_Den Посмотреть сообщение
Показывайте реальный участок текста и код, относящийся к задаче.
Да нет никакого кода, просто текст.
Цитата Сообщение от Lazy_Den Посмотреть сообщение
Оно-то работает,
Да по ссылке работает, а у меня нет. Я даже пробовал создать отдельный файл и поместил код как вы написали, но пустая страница

Добавлено через 4 минуты
А нет, все. Проблема была из-за кодировки. У меня стоял windows-1251, поменял на utf8, все заработало. Вопрос: Как сделать чтобы он работал в windows-1251?
0
Lazy_Den
2890 / 2569 / 1029
Регистрация: 15.01.2014
Сообщений: 5,625
12.05.2018, 12:11 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Риназ Посмотреть сообщение
Как сделать чтобы он работал в windows-1251?
Попробуйте такой вариант:
PHP
1
2
$str = 'Тут какой-то текст И тут какой-то текст Это другой текст';
$arr = preg_split('/\s(?=\p{Lu})/u', iconv('cp1251','utf-8',$str));
Однако, так и напрашивается вопрос: "Зачем и почему UTF-8 не устраивает?".
1
Риназ
18 / 1 / 0
Регистрация: 16.06.2017
Сообщений: 314
12.05.2018, 12:14  [ТС] #7
Зачем и почему UTF-8 не устраивает?".
Для другого кода не подходит.
0
Lazy_Den
2890 / 2569 / 1029
Регистрация: 15.01.2014
Сообщений: 5,625
12.05.2018, 12:19 #8
Цитата Сообщение от Риназ Посмотреть сообщение
Для другого кода не подходит.
Дело ваше, но я бы предпочел изменить этот другой код, чем оставаться на кодировке cp1251
0
Риназ
18 / 1 / 0
Регистрация: 16.06.2017
Сообщений: 314
12.05.2018, 13:18  [ТС] #9
Lazy_Den, а почему вам cp1251 не нравится?

Добавлено через 4 минуты
Спасибо! Код, который вы написали выше, работает с cp1251.
Не могли посоветовать какую нибудь обучалочку про: /\s(?=[А-ЯЁA-Z])/u(я просто не знаю как они называются) и т.п?

Добавлено через 35 минут
Кажется я рано радовался( Т.к. у меня стоит кодировка cp1251, то ваш код, как я понял преобразует cp1251 на utf8. Поэтому когда я вывожу текст на экран, вместо текста каракули.
0
Lazy_Den
2890 / 2569 / 1029
Регистрация: 15.01.2014
Сообщений: 5,625
12.05.2018, 13:51 #10
Цитата Сообщение от Риназ Посмотреть сообщение
а почему вам cp1251 не нравится?
Я не теоретик и не возьмусь правильно описать преимущества UTF-8, но если с точки зрения практика, то перейдя в своё время на UTF-8, я больше никогда не сталкивался с проблемами аналогично вашей. А столкнулся бы с множеством: большинство API, Ajax - работают именно с UTF-8, для многоязычных сайтов, которые я создавал и поддерживаю сейчас, пришлось бы держать в каждой руке по два бубна, чтобы они нормально работали. Все символы, которые в принципе описаны в таблице символов, поддерживаются UTF-8 без проблем, что не скажешь про cp1251. Там, если не ошибаюсь, только 255 символов, а в UTF-8 > 100 тысяч.

Добавлено через 1 минуту
Цитата Сообщение от Риназ Посмотреть сообщение
когда я вывожу текст на экран, вместо текста каракули.
Делайте обратное преобразование кодировки, пробегаясь по массиву строк.

Добавлено через 2 минуты
Цитата Сообщение от Риназ Посмотреть сообщение
Кажется я рано радовался
Поверьте, если занятие веб-разработками у вас в долгосрочных планах, то это мизерная проблемка, по сравнению с теми, которые вас ждут в дальнейшем, если не перейдете на UTF-8.
0
Риназ
18 / 1 / 0
Регистрация: 16.06.2017
Сообщений: 314
12.05.2018, 14:38  [ТС] #11
Lazy_Den, я пробовал преобразовать, но в массив записались только буквы.
Я тоже чаще всего работаю на utf-8, Но в этот раз пришлось выбрать cp1251, так как для другого файла обязательно нужен cp1251, utf-8 он не работает ни при каких обстоятельствах.
0
Риназ
18 / 1 / 0
Регистрация: 16.06.2017
Сообщений: 314
13.05.2018, 15:53  [ТС] #12
Lazy_Den, У меня ещё один вопрос: а если в тексте есть слова начинающие с большой буквы(например ФИО), как быть?
0
Lazy_Den
2890 / 2569 / 1029
Регистрация: 15.01.2014
Сообщений: 5,625
13.05.2018, 21:17 #13
Цитата Сообщение от Риназ Посмотреть сообщение
например ФИО
Для аббревиатуры, как вариант, можно попробовать сделать условие: Прописная буква, за которой не следует тоже прописная
PHP
1
$arr = preg_split('/\s(?=(\p{Lu}[^\p{Lu}]))/u', $str);
0
Риназ
18 / 1 / 0
Регистрация: 16.06.2017
Сообщений: 314
13.05.2018, 21:24  [ТС] #14
Lazy_Den, а если будет так:
Привет Фамилия Имя
Как дела Фамилия
0
Lazy_Den
2890 / 2569 / 1029
Регистрация: 15.01.2014
Сообщений: 5,625
13.05.2018, 21:42 #15
Цитата Сообщение от Риназ Посмотреть сообщение
а если будет так
Тут уже ИИ подключать нужно
Может расскажите откуда эти данные берутся, в каком формате к вам поступают? Возможно, что найдутся другие способы их обработки.
0
13.05.2018, 21:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2018, 21:42
Привет! Вот еще темы с ответами:

Нужно вывести все элементы массива которые начинаются с определенных символов - PHP БД
Доброго всем времени суток! Собственно проблема в следующем. Есть таблица в ней есть поля ip id и т.д... Нужно вывести все ячейки с...

Все слова, которые начинаются с большой буквы, вывести большими буквами - C (СИ)
Здравствуйте! Помогите пожалуйста! Нужно в текстовом файле все слова, которые начинаются с большой буквы, вывести большими буквами. Вот,...

Определить количество слов в веденной строке которые начинаются с большой буквы - Turbo Pascal
помогите пожалучто! Определить количество слов в веденной строке которые начинаются с большой буквы заранее спасибо

Напечатать в алфавитном порядке все слова, которые начинаются с большой буквы - C++
Напечатать в алфавитном порядке все слова, которые начинаются с большой буквы и заканчиваются заданной цепочкой из трех символов....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru