Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для dajver
411 / 275 / 22
Регистрация: 18.09.2010
Сообщений: 1,114

Regex

28.12.2013, 17:54. Показов 999. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Требуется вырезать из вот такого вида строки {data = data1 }, data1, а все остальное удалить, как такое можно сделать? Никак я не могу понять эти регулярные выражения =( Помогите пожалуйста
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.12.2013, 17:54
Ответы с готовыми решениями:

Разбор regex
Готовлюсь к scjp - дошёл до regex. ^severity ^ это всё кроме это пробел -цифра от 1 до 5

Пропарсить первую строку HTTP-запроса (Regex)
Всем привет, хочу из первой строки стандартного HTTP запроса вытянуть метод, URI и версию HTTP Что я написал : final Pattern pattern =...

java.util.regex.*;
Пишу в IDEA, время от времени сталкиваюсь с RegExp'ами, но проблема уже по правде говоря достала, ума не приложу в чем может быть дело. ...

14
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
 Аватар для tankomaz
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
28.12.2013, 18:15
первый вопрос который вы должны задать самому себе - какие "уникальные" черты отделяют набор символов data = d, data1, {data = data1 } от нужного
1
 Аватар для dajver
411 / 275 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
28.12.2013, 18:18  [ТС]
Цитата Сообщение от tankomaz Посмотреть сообщение
первый вопрос который вы должны задать самому себе - какие "уникальные" черты отделяют набор символов data = d, data1, {data = data1 } от нужного
{data=слово}, вместо "слово" может быть любое словосочетание из нескольких слов, например, "привет мама", "летели гуси", "зеленый"
0
 Аватар для Vortal
104 / 104 / 27
Регистрация: 11.08.2011
Сообщений: 301
28.12.2013, 18:34
сама регулярка {.+=(.+)}
эта группа и есть то что вам надо то что вам надо оставить $1
XML
1
2
<substitution_regexp>{.+=(.+)}</substitution_regexp>
<substitute_with>$1</substitute_with>
1
 Аватар для dajver
411 / 275 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
28.12.2013, 18:37  [ТС]
Цитата Сообщение от Vortal Посмотреть сообщение
сама регулярка {.+=(.+)}
эта группа и есть то что вам надо то что вам надо оставить $1
XML
1
2
<substitution_regexp>{.+=(.+)}</substitution_regexp>
<substitute_with>$1</substitute_with>
Java
1
java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 1:
0
 Аватар для Vortal
104 / 104 / 27
Регистрация: 11.08.2011
Сообщений: 301
28.12.2013, 18:40
простите я не телепат. Что вы там в коде написали я незнаю, на http://gskinner.com/RegExr/ эта регулярка работает. А xml я привел чтоб вы поняли что такое группа
1
 Аватар для dajver
411 / 275 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
28.12.2013, 18:42  [ТС]
Java
1
2
3
4
String re1 = "{.+=(.+)}";
Pattern p = Pattern.compile(re1, Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
Matcher m = p.matcher(str);
Toast.makeText(MainActivity.this, "" + m.matches(), Toast.LENGTH_SHORT).show();
Вот такой код, на вход идет {data=слово}, выдает все время false
0
 Аватар для Vortal
104 / 104 / 27
Регистрация: 11.08.2011
Сообщений: 301
28.12.2013, 18:57
Java
1
2
3
        Pattern p= Pattern.compile("data=(.+)}");
        Matcher str=p.matcher("{data=data1}");
        System.out.println(str.find()+" "+str.group(1));
Добавлено через 35 секунд
вывод:
Java
1
true data1
1
 Аватар для dajver
411 / 275 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
28.12.2013, 19:43  [ТС]
Цитата Сообщение от Vortal Посмотреть сообщение
Java
1
2
3
        Pattern p= Pattern.compile("data=(.+)}");
        Matcher str=p.matcher("{data=data1}");
        System.out.println(str.find()+" "+str.group(1));
Добавлено через 35 секунд
вывод:
Java
1
true data1
У вас оно не может работать по простой причине,
Java
1
Pattern.compile("data=(.+)}");
синтаксическая ошибка, пропущена "{", но и плюс даже когда я добавляю ее, все так же пишет
Java
1
java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 1:
А код я вставляю ваш.

Добавлено через 9 минут
А вот когда
Java
1
Pattern.compile("");
пустой, ошибки нет, правда и никаких действий нет)
0
 Аватар для Lancaster
63 / 63 / 12
Регистрация: 29.08.2012
Сообщений: 152
28.12.2013, 19:55
Цитата Сообщение от dajver Посмотреть сообщение
синтаксическая ошибка, пропущена "{", но и плюс даже когда я добавляю ее, все так же пишет
Код Java(TM) 2 Platform Standard Edition 5.0
1
java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 1:
Попробуйте экранировать 2 фигурные скобки
Java
1
Pattern p= Pattern.compile("\\{data=(.+)\\}");
1
 Аватар для Vortal
104 / 104 / 27
Регистрация: 11.08.2011
Сообщений: 301
28.12.2013, 20:01
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class RegExp {
    public static void main(String args[]){
        String test="{data=odin}{data=dwa}{data=tri}";
        Pattern p= Pattern.compile("data=([^}]+)}");
        Matcher str=p.matcher(test);
        while(str.find()){
            System.out.println(str.group(1));
        }
        
    }
 
}
 
Вывод
odin
dwa
tri
1
 Аватар для dajver
411 / 275 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
28.12.2013, 20:04  [ТС]
Цитата Сообщение от Vortal Посмотреть сообщение
Вывод
odin
dwa
tri
Java
1
 Pattern p = Pattern.compile("\\{data=([^}]+)\\}");
Вот это подходит, спасибо. Добавил бекслеши, спасибо Lancaster, и стало все работать идеально!
0
 Аватар для Vortal
104 / 104 / 27
Регистрация: 11.08.2011
Сообщений: 301
28.12.2013, 20:11
Всегда пожалуйста, просто я тестил через онлайн проверку регулярок и забыл что надо экранировать спец. символы сначала для регулярки, а потом для джавы
1
 Аватар для dajver
411 / 275 / 22
Регистрация: 18.09.2010
Сообщений: 1,114
28.12.2013, 20:12  [ТС]
Цитата Сообщение от Vortal Посмотреть сообщение
Всегда пожалуйста, просто я тестил через онлайн проверку регулярок и забыл что надо экранировать спец. символы сначала для регулярки, а потом для джавы
Огромное спасибо за помощь)
0
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
 Аватар для tankomaz
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
28.12.2013, 22:33
Какой пакет импортировался? ИДЕ бывает косячит в этом плане

Добавлено через 46 секунд
Опоздал, звыняюсь)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.12.2013, 22:33
Помогаю со студенческими работами здесь

Regex
Доброго времени суток! Не сильно понимаю pattern, поэтому столкнулся вот с такой вот кажется простенькой проблемой: Нужно разбить...

Regex
Как написать регулярное выражение чтобы в строке первый символ был (* Any Unicode character except: '.', '/', ':', '',...

regex
есть такой нубокод package Sample; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; ...

Regex в Java
Здравствуйте! Возникли проблемы с регулярными выражениями. Нужно проверить строку на соответствие шаблону: Строка может состоять...

RegEx реклама
Доброго дня, ребята, я сильно не понимаю регулярки, но пытаюсь их понять, у меня такой вопрос касаемо этой темы. К примеру игрок пишет в...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru