Форум программистов, компьютерный форум, киберфорум
mutagen
Войти
Регистрация
Восстановить пароль
все вопросы по Java которые задают более 3х раз на форуме
Рейтинг: 5.00. Голосов: 1.

RegExp сладости из Java7

Запись от mutagen размещена 01.09.2013 в 17:15. Обновил(-а) mutagen 01.09.2013 в 17:16
Показов 5029 Комментарии 1

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
25
26
27
28
29
30
31
package rexp;
 
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
/**
 * @author mutagen
 */
public class RexpNamedGroup {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
//        Допустим надо поискать повторяющиеся последовательности из 3 цифр и 2 букв а или b так, 
//        чтобы они полностью совпадали
//        сам рексп будет \\d{3}[ab]{2} - и мы его хотим расширить для поиска повторов
//        что то типа \\d{3}[ab]{2}[пробел]\\d{3}[ab]{2}
//        для этого воспользуемся именованной группой и бекреференсом на неё \\k<mydigits1>
        Pattern digits = Pattern.compile("(?<mydigits1>\\d{3}[ab]{2})\\s+\\k<mydigits1>");
        // допустим у нас есть кандидаты на проверку
        String[] targets = {"123ab 123ab", "123aa 123aa", "123bb 123bb", "123aa 123bb", "123bb 123aa"};
        for (String tgt : targets) {
            Matcher matcher = digits.matcher(tgt);
            if (matcher.matches()) {
//                смотрим на результат
                System.out.println(matcher.group("mydigits1"));
            }
        }
    }
}
Bash
1
2
3
4
5
run:
123ab
123aa
123bb
BUILD SUCCESSFUL (total time: 0 seconds)
итак мы получили что хотели

из минусов - нельзя делать именованные группы на русском(скорее всего и любом другом неанглийском) языке, что малёха ломает модель Java по поводу того что имена пропертей могут быть на любых языках, а именованных групп только на английском, без пробелов и подчеркух
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 1
Комментарии
  1. Старый комментарий
    Аватар для KOPOJI
    Цитата:
    из минусов - нельзя делать именованные группы на русском(скорее всего и любом другом неанглийском) языке, что малёха ломает модель Java по поводу того что имена пропертей могут быть на любых языках
    Думаю, не ломает. Т.к. это относится не напрямую к яве, а к самой библиотеке регулярных выражений.
    Запись от KOPOJI размещена 04.09.2013 в 15:30 KOPOJI вне форума
 
Новые блоги и статьи
Как конвертировать видео в GIF
hw_wired 24.01.2025
В современном мире анимированные изображения стали неотъемлемой частью цифровой коммуникации. Формат GIF (Graphics Interchange Format) представляет собой особый тип файлов, который позволяет. . .
Как скопировать текст в буфер обмена на JavaScript во всех браузерах
hw_wired 24.01.2025
Копирование текста в буфер обмена стало неотъемлемой частью современных веб-приложений, значительно улучшающей пользовательский опыт и упрощающей работу с контентом. В эпоху активного обмена. . .
Как скрыть клавиатуру на Android
hw_wired 24.01.2025
При разработке Android-приложений часто возникает необходимость управлять видимостью экранной клавиатуры для улучшения пользовательского опыта. Одним из наиболее эффективных способов контроля. . .
Как обучить нейросеть создания картинок на Python
bytestream 24.01.2025
В эпоху цифровых технологий искусственный интеллект становится неотъемлемой частью творческого процесса. Особое место в этой области занимает разработка и обучение нейронных сетей для создания. . .
Как обучить нейросеть генерации текста на Python
bytestream 24.01.2025
В современном мире искусственный интеллект и машинное обучение становятся неотъемлемой частью многих технологических решений. Одной из наиболее интересных и востребованных задач в этой области. . .
Машинное обучение на Python
bytestream 24.01.2025
Введение в машинное обучение на Python Машинное обучение представляет собой одну из наиболее динамично развивающихся областей информационных технологий, которая позволяет компьютерным системам. . .
Как удалить вирус-майнер с компьютера
hw_wired 24.01.2025
Вирусы-майнеры стали одной из наиболее серьезных угроз для пользователей компьютеров. Эти вредоносные программы тайно используют вычислительные ресурсы зараженного устройства для добычи криптовалюты. . .
Что такое веб-сервер, для чего он нужен и как работает
bytestream 24.01.2025
В современную эпоху цифровых технологий веб-сервер является фундаментальным компонентом интернет-инфраструктуры, обеспечивающим функционирование множества онлайн-сервисов и веб-сайтов. Этот. . .
Как в цикле for перебрать все элементы в словаре в Python
bytestream 24.01.2025
Словари в Python представляют собой мощные структуры данных, которые позволяют хранить информацию в формате ключ-значение. Эта особенность делает их незаменимыми при работе с данными, где требуется. . .
Как отменить rebase в Git
hw_wired 24.01.2025
Git rebase представляет собой мощный инструмент для управления историей коммитов в системе контроля версий Git. Этот механизм позволяет разработчикам изменять последовательность, комбинировать или. . .
Как поменять цвет input placeholder с помощью CSS
bytestream 24.01.2025
В веб-разработке оформление элементов пользовательского интерфейса играет ключевую роль в создании привлекательного и интуитивно понятного дизайна. Особое внимание уделяется формам ввода данных, где. . .
Как перебрать все значения в перечислении (enum) в C#
bytestream 24.01.2025
Перечисление (enum) в языке программирования C# представляет собой специальный тип данных, который позволяет определить набор именованных констант. Этот мощный инструмент особенно полезен, когда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru