С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
143 / 115 / 61
Регистрация: 13.01.2016
Сообщений: 305
1

Анализ символов "[", "{" в регулярных выражениях

28.10.2016, 12:33. Показов 1167. Ответов 3

Author24 — интернет-сервис помощи студентам
Всем добрый день!
Необходимо парсить выражения типа [выражение] и {выражение}.
Гугл подсказывает, что скобочки надо выводить после двух обратных слэшей. Окей. Все компилируется, код запускается.
Но почему в таком случае в примерах выводится ответ false? Не могу найти свою ошибку.
Java
1
2
3
4
Pattern pattern = Pattern.compile("^[\\{\\[]*");
        System.out.println(Pattern.matches(pattern.pattern(), "aaa")); //false
        System.out.println(Pattern.matches(pattern.pattern(), "[caa"));//false
        System.out.println(Pattern.matches(pattern.pattern(), "{faa"));//false
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.10.2016, 12:33
Ответы с готовыми решениями:

Вопрос о регулярных выражениях в Java
Кто знает ссылку на хороший учебник по регулярным выражениям, поделитесь, пожалуйста. Ссылку на...

Символьные классы в регулярных выражениях и различные языки
Думаю все знаюто что в рег. выражениях есть такие классы как \d - цифра \a - буква \w -...

Последовательность символов в регулярных выражениях
Есть регулярка: ^*$ Это строка из букв и пробелов, начинающаяся не с пробелов. Как вставить в эту...

Как в регулярных выражениях указывать искомое из таблицы символов
здравствуйте речь о ASCII таблице кодов символов Windows (Win-1251) то есть надо reg.Pattern =...

3
20 / 23 / 24
Регистрация: 20.10.2016
Сообщений: 45
28.10.2016, 12:50 2
Лучший ответ Сообщение было отмечено RedPatrick как решение

Решение

Как я понял нужно что-то типо этого
Java
1
  Pattern pattern = Pattern.compile("^[\\[|\\{].+$");
1
143 / 115 / 61
Регистрация: 13.01.2016
Сообщений: 305
28.10.2016, 13:31  [ТС] 3
spid3y, работает, благодарю! Оказалось, ошибка не там, где я думал - в символах после. Можете в таком случае объяснить, почему не работает паттерн а, но работает паттерн b?
Java
1
2
3
4
5
6
7
Pattern a = Pattern.compile("^[\\[a]*");
        System.out.println(Pattern.matches(a.pattern(), "aaa")); //true
        System.out.println(Pattern.matches(a.pattern(), "[caa]"));//false
        
        Pattern b = Pattern.compile("^[\\[a].+");
        System.out.println(Pattern.matches(b.pattern(), "aaa")); //true
        System.out.println(Pattern.matches(b.pattern(), "[caa]"));//true
0
20 / 23 / 24
Регистрация: 20.10.2016
Сообщений: 45
28.10.2016, 13:53 4
В первом случае идет начало стоки (^) потом одиночный символ [ или а ([\\[a]) любое количество раз (*) т.е. ааа или [[[
Во втором случае начало (^) стоки потом символ [ или а ([\\[a]) потом любой символ (.) один или несколько раз (+)
P.S. Мой паттерн было бы правильнее написать так
Java
1
  Pattern pattern = Pattern.compile("^[\\[\\{].+$");
1
28.10.2016, 13:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.10.2016, 13:53
Помогаю со студенческими работами здесь

Кавычки в регулярных выражениях
Доброго времени суток. Задача такая нужно приводить таблицы к виду table class="colored_table"...

Логическое И в регулярных выражениях
Здравствуйте! Подскажите, как в регулярках использовать логическое И? Логическое ИЛИ вроде выяснил...

Рекурсия в регулярных выражениях
Возник вопрос, как средствами языка c++ реализовать анализ (верна ли запись) регулярными...

Метасимвол в регулярных выражениях
Символ "." означает любой символ кроме перевода на новую строку. А символ "\." непосредственно саму...

Замена в регулярных выражениях
Нужно убрать из текста все <thead> </thead> и то что между ними их несколько штук в тексте Пример:...

Значение $1 в регулярных выражениях
replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1"); Не совсем выкупаю что делает $1. Это перестановка?


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

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