powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Регулярные выражения в Java
12 сообщений из 12, страница 1 из 1
Регулярные выражения в Java
    #32710354
Yalkun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет друзья может кто встречался с такой проблемой ПОДСКАЖИТЕ ?

Я работаю с помощью Pattern и Matcher соотвественно в Pattern передается шаблон а, в Matcher передается вычисляемый текст. Так вот я немогу составить шаблон который выбирал из этого текста "1 22 333 4444 55555" мне только 22 и 4444 тоесть получается через рас а, все остальные не брал. Вот какой я попробовал написать шаблон \s+\d{2}\s+\d{4} только он не выбирает а, если не так \s+\d{2}\s+\d{4}
Все регулярные выражения работают на Java.
Жду ответов
...
Рейтинг: 0 / 0
Регулярные выражения в Java
    #32710576
Ustazz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может стоит выбрать все цифровые последовательности с помощью \d+, а затем отобрать только четные из них?
...
Рейтинг: 0 / 0
Регулярные выражения в Java
    #32710743
Yalkun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть регулярное выражение:
Код: plaintext
1.
(0497)|((\s+\d{7}\s+)(?!\[^0-9]+))

Есть текст:

Код: plaintext
1.
(:0497 B– K‡X  9698003 14 05 11 27 001:ћ1 0000 200 001 000 6980+044+6986:)

Выводит результат:

Код: plaintext
1.
0497 9698003

Проблема:
Если 0497 поменять на допустим 0397 то результат:
9698003
Потому что у нас в рег.выраж стоит знак "|" - логическое или.
А мне нужно чтобы он не "или" а "и" делал,
т.е если не 0497 а 0397 он просто ничего не выберает, потому что результат одного рег. выражения не правильный. Как такое можно сделать?
В рег. выражении которое мною составлено используется знак "|" потому что я не смог найти больше другого выхода.
Одним словом если в рег.выр. одно значение не правельное то полностью текс игнорируется(А он из за "|" возвращает следующее после неправильного значения т.е после знака "или").
...
Рейтинг: 0 / 0
Регулярные выражения в Java
    #32711073
Ustazz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нужно выбрать сначала последовательность из 4, а затем из 7 цифр, попробуте так: ( \d{4}).+\s+(\d{7})\s+
...
Рейтинг: 0 / 0
Регулярные выражения в Java
    #32711432
Yalkun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо за идею которую ты опубликовал но это не помогло. Мне нужно было выбрать с этого текста:
Код: plaintext
1.
(:0497 B– K‡X  9698003 14 05 11 27 001:)
Выбрать только например скажем только 4-х значную цифру -"0497" и 7-ми значную цифру - "9698003" а между ними ведь стоят еще буквенные и другие символы которые мне ненужно выбирать то есть получается перепрыгивать и брать только указанную а так он не разрешает. Попробовал поставить знак "| или" да перепрыгивает и выбирает нужное но если первое условие не равно то просто его игнорирует и выводит второе искомое значение а, у меня задача если первое искомое значение не найдено то и второе тоже не выбирать.

В твоей Ustazz подсказке он получается выбирает подряд и не перепрыгивает :(
Код: plaintext
1.
( \d{4}).+\s+(\d{7})\s+
это из за знака " .+ " в твоем шаблоне "( \d{4}).+\s+(\d{7})\s+" он выводит результат "0497 B– K‡X 9698003" а, мне нужно "0497 9698003 ".
Может у тебя есть еще какие нибудь идеи будь добр напиши.
...
Рейтинг: 0 / 0
Регулярные выражения в Java
    #32711492
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yalkun4-х значную цифру -"0497" и 7-ми значную цифру - "9698003"
Не простые цифры нынче :)
...
Рейтинг: 0 / 0
Регулярные выражения в Java
    #32711738
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, а если действительно нужны четырёх значные цифры, то вот:
[sec java]
String regex = "(\\d{4})\\D.*(\\d{7})[\\D|$]";
String input = "(:0496 B– K‡X 96980038 14 05 11 27 001:)";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
if (matcher.find()) {
System.out.println("group: '" + matcher.group(1)+"'");
System.out.println("group: '" + matcher.group(2)+"'");
}
[/src]
...
Рейтинг: 0 / 0
Регулярные выражения в Java
    #32711739
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sec :(
...
Рейтинг: 0 / 0
Регулярные выражения в Java
    #32711740
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
With fixed bugs :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
        String regex = "^[.*\\D]?(\\d{4})\\D[.*\\D]?(\\d{7})[\\D|$]";
        String input = "(:0496 B– K‡X 96980038 14 05 11 27 001:)";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        System.out.println("find? " + matcher.find());
        System.out.println("group: '" + matcher.group(1)+"'");
        System.out.println("group: '" + matcher.group(2)+"'");
...
Рейтинг: 0 / 0
Регулярные выражения в Java
    #32711742
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
определённо, по ночам надо спать :(
"^[.*\D]?(\d{4})\D[.*\D]?(\d{7})[\D.*]?$"
...
Рейтинг: 0 / 0
Регулярные выражения в Java
    #32712570
Ustazz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yalkunэто из за знака " .+ " в твоем шаблоне "( \d{4}).+\s+(\d{7})\s+" он выводит результат "0497 B– K‡X 9698003" а, мне нужно "0497 9698003 ".
Может у тебя есть еще какие нибудь идеи будь добр напиши.

А в matcher.group(1) и matcher.group(2) что?

К сожалению под рукой java нет, но есть подозрение что при определенные оговорках можно и так
Код: plaintext
(\d{4}).+(\d{7})
...
Рейтинг: 0 / 0
Регулярные выражения в Java
    #32713829
Yalkun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
Большое всем спасибо друзья 
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Регулярные выражения в Java
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]