Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 3
Регистрация: 16.07.2012
Сообщений: 58
1

Разбить текст на фразы через регулярные выражения

12.07.2014, 23:26. Показов 3759. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Допустим дан текст: "Привет как у тебя дела? Ответь мне! Чем сейчас занят?". Мне его нужно разбить на фразы, но чтобы в конце вопросительных предложений оставался знак вопроса.
Вот так вот:

Привет как у тебя дела?
Ответь мне
Чем сейчас занят?

Эти предложения я буду помещать в массив. Это же через регулярные выражения делается?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.07.2014, 23:26
Ответы с готовыми решениями:

Разбить текст по символу [Регулярные выражения]
Добрый вечер всем! "Диск-переходник Frabosk 12см для индукционной...

Регулярные выражения в .Split: разбить текст по любой букве английского алфавита
Доброго времени суток. Помогите разобраться как использовать регулярку. Вот в этом примере наш...

Регулярные выражения-парсим фразы с тире
В прошлой теме не обратили внимания, но вопрос опять по регулярным выражениям: 1.Ещё подскажите...

ЧПУ. Замена строк, регулярные выражения. Как правильно использовать переменную в регулярные выражения ?
Здравствуйте! Решил реализовать ЧПУ на своем сайте. Первый этап это замена всех реальных ссылок на...

1
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
13.07.2014, 23:44 2
Лучший ответ Сообщение было отмечено PREDATORik как решение

Решение

Можно и через регулярные выражения.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.ArrayList;
import java.util.Collection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class Tutorial {
 
    private static final String SENTENCE_REGULAR_EXPRESSION = "(.+?[!\\?\\.]+)+?";
    private static final Pattern SENTENCE_PATTERN = Pattern.compile(SENTENCE_REGULAR_EXPRESSION);
 
    private static Collection<String> parseSentences(final String text) {
        final Matcher matcher = SENTENCE_PATTERN.matcher(text);
        final Collection<String> result = new ArrayList<>();
        while (matcher.find()) {
            result.add(matcher.group().trim());
        }
        return result;
    }
 
    public static void main(String[] args) throws InterruptedException {
        final String text = "Привет, как у тебя дела???? Ответь мне! Чем сейчас занят?";
        System.out.println(parseSentences(text));
    }
}
1
13.07.2014, 23:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.07.2014, 23:44
Помогаю со студенческими работами здесь

Регулярные выражения. Перевести шаблон в текст
Шаблон string patt = &quot;swi.(l?f g+) {1,5}\^&quot; перевести в текст string text = &quot; &quot;;

Регулярные выражения - заменить/вставить текст
Дан произвольный текст: «У Пети было 3*, а у Маши было 5*. Маша съела 1*, а Петя съел 2*. Сколько *...

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

Регулярные выражения. Определить содержит ли текст цифры
Используя классы из пространства имен RegularExpression выполнить задачу: - Заданный текст....


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru