Форум программистов, компьютерный форум CyberForum.ru

Java ME (J2ME)

Войти
Регистрация
Восстановить пароль
 
Cuda1
18 / 18 / 7
Регистрация: 08.10.2014
Сообщений: 98
#1

Регулярное выражение - Java ME

08.10.2014, 19:19. Просмотров 966. Ответов 5
Метки нет (Все метки)

Здравствуйте. Есть такая строка
Java
1
 temp="{newsid=10, created=2014-10-06 11:28:35, title=bla bla bla}";
Мне требуется из нее получить значение newsid. т.е. 10. Чтобы его получить я написал такое выражение:
Java
1
String[] strs = temp.split("[+\\(newsid=)\\,+]");
Но проблема в том, что оно работает только если newsid стоит на первом месте в строке, если его поставить на вместо created или title в исходной строке, то оно не работает. В регулярных выражениях не силен. Можете подсказать, что именно надо передать в split, чтобы получить значение newsid? Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2014, 19:19     Регулярное выражение
Посмотрите здесь:

регулярное выражение... PHP
Регулярное выражение PHP
Регулярное выражение JavaScript
Регулярное выражение PHP
JavaScript Регулярное выражение
Java SE Регулярное выражение и \
C# регулярное выражение
Регулярное выражение Perl
Регулярное выражение C#
PHP Регулярное выражение
JavaScript Регулярное выражение
Регулярное выражение Perl

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
2025 / 1767 / 548
Регистрация: 12.05.2014
Сообщений: 6,265
Завершенные тесты: 1
08.10.2014, 19:36     Регулярное выражение #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
ну как вариант, можно сделать так
Java
1
2
3
4
5
6
        String temp = "{newsid=10, created=2014-10-06 11:28:35, title=bla bla bla}";
        Pattern p = Pattern.compile("newsid=(\\d++),");
        Matcher m = p.matcher(temp);
        while (m.find()) {
            System.out.println(m.group(1));
        }
Циклом проходит всю строку и выводит все вхождения на тот случай, если их > 1
Cuda1
18 / 18 / 7
Регистрация: 08.10.2014
Сообщений: 98
08.10.2014, 19:46  [ТС]     Регулярное выражение #3
Забыл сказать, что желательно, чтобы значение newsid было всегда доступно по одному и тому же индексу массива strs[i], независимо от позиции newsid в строке.

Добавлено через 9 минут
Цитата Сообщение от Паблито Посмотреть сообщение
ну как вариант, можно сделать так
мне нужно чтобы в итоге можно было обратиться к элементу массива, который имеет значение newsid.
turbanoff
Модератор
3890 / 3625 / 432
Регистрация: 18.05.2010
Сообщений: 9,123
Записей в блоге: 11
Завершенные тесты: 1
08.10.2014, 20:45     Регулярное выражение #4
Cuda1, ну запишите результаты, которые вам выдает Matcher в массив. Какие проблемы...
Cuda1
18 / 18 / 7
Регистрация: 08.10.2014
Сообщений: 98
08.10.2014, 21:56  [ТС]     Регулярное выражение #5
Я сделал так:
Java
1
2
3
4
5
6
 String temp = "{created=2014-10-06 11:28:35, title=bla bla bla, newsid=10}";
        Pattern p = Pattern.compile("newsid=(\\d++),");
        Matcher m = p.matcher(temp);
        while (m.find()) {
                 id = (m.group(1));
        }
id пустая потому что newsid стоит на последнем месте в строке. В во всех остальных случаях работает. Как нужно дополнить выражение тогда?

Добавлено через 35 минут
UPD
Java
1
Pattern p = Pattern.compile("newsid=(\\d++)(,|\\})");
немного изменил и все заработало. Всем спасибо.
Паблито
2025 / 1767 / 548
Регистрация: 12.05.2014
Сообщений: 6,265
Завершенные тесты: 1
09.10.2014, 09:51     Регулярное выражение #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
так там же можно было просто запятую убрать в регулярном выражении и все (и плюс задвоился у меня)
Java
1
Pattern.compile("newsid=(\\d+)");
Yandex
Объявления
09.10.2014, 09:51     Регулярное выражение
Ответ Создать тему
Опции темы

Текущее время: 08:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru