Страница 1 из 1
Регулярные выражения
Добавлено: 2011-03-15 20:50:34
skvor
Пытаюсь раскурить subj, но видимо не в ту сторону думаю.
Надо заменить/удалить подстроки с произвольным содержанием и предопределенными началом и концом.
---
save it 0 begin del it 1 end save it 1 begin del it 2 end save it 2 begin del it 3 end save it 3 begin del it 4 end save it 4
---
Пишу "begin.*end" и он выделяет от так
---
save it 0 begin del it 1 end save it 1 begin del it 2 end save it 2 begin del it 3 end save it 3 begin del it 4 end save it 4
---
а надо так
---
save it 0 begin del it 1 end save it 1 begin del it 2 end save it 2 begin del it 3 end save it 3 begin del it 4 end save it 4
---
Re: Регулярные выражения
Добавлено: 2011-03-15 21:10:37
terminus
Re: Регулярные выражения
Добавлено: 2011-03-15 21:40:50
skvor
Надо заменить/удалить подстроки с произвольным содержанием и предопределенными началом и концом.
Проблема - как обозначить подстроку, которой не должно быть в контейнере, или как определить что б искалась наименьшая строка "begin...<всё_что_угодно_кроме_end>...end"
Re: Регулярные выражения
Добавлено: 2011-03-16 10:07:39
Charlz_Klug_
Есть понятие: Жадность регулярных выражений. Это значит что регулярное выражение будет пытаться найти максимальную строку соответствующую шаблону. Почитайте
здесь.
Re: Регулярные выражения
Добавлено: 2011-03-16 14:47:28
skvor
Спасибо, про жадность я читал. Вопрос - как определить "нежаность" или отсутствие последовательности символов?
Re: Регулярные выражения
Добавлено: 2011-03-16 15:13:24
hizel
я думаю что ваша задача не для регэкспов, а для обычного лексического парсёра, быстрее веселее и молодежнее
Re: Регулярные выражения
Добавлено: 2011-03-16 16:06:39
skvor
hizel, да возможно, но вот что меня удивляет, так это отсутствие синтаксической возможности отрицать последовательность символов.
Практическая задача была такой - открыть страницу и удалить то, что не нужно. А с помощью регвыров у меня легко получается только удаление того, что хочу оставить.
Re: Регулярные выражения
Добавлено: 2011-03-16 16:19:25
hizel
много хавать будет, но если очень надо, извольте:
ваш вариант
Код: Выделить всё
re> /begin.*end/
data> save it 0 begin del it 1 end save it 1 begin del it 2 end save it 2 begin del it 3 end save it 3 begin del it 4 end save it 4
0: begin del it 1 end save it 1 begin del it 2 end save it 2 begin del it 3 end save it 3 begin del it 4 end
data>
мой вариант
Код: Выделить всё
re> /(begin.*end)/Ug
data> save it 0 begin del it 1 end save it 1 begin del it 2 end save it 2 begin del it 3 end save it 3 begin del it 4 end save it 4
0: begin del it 1 end
1: begin del it 1 end
0: begin del it 2 end
1: begin del it 2 end
0: begin del it 3 end
1: begin del it 3 end
0: begin del it 4 end
1: begin del it 4 end
data>
re>
использую ня pcretest
Re: Регулярные выражения
Добавлено: 2011-03-16 16:20:41
hizel
можно даже сократить до
Код: Выделить всё
re> /begin.*end/Ug
data> save it 0 begin del it 1 end save it 1 begin del it 2 end save it 2 begin del it 3 end save it 3 begin del it 4 end save it 4
0: begin del it 1 end
0: begin del it 2 end
0: begin del it 3 end
0: begin del it 4 end
модификатор\опция какбэ намекает ;-)
Re: Регулярные выражения
Добавлено: 2011-03-16 17:17:16
skvor
Не знаю, что такое pcretest. Но хотел что-то более халявное, чем программо писание, и что б работало в "блокнотах". Проще оказалось сто раз нажать Ctrl-F и стирать пальцами что не нужно.
Вобщем, всем спасибо.
Re: Регулярные выражения
Добавлено: 2011-03-16 17:27:48
hizel
pcretest входит в библиотеку pcre, которая сама по себе есть Perl Compatible Regular Expressions
Re: Регулярные выражения
Добавлено: 2011-03-16 17:48:47
skvor
Да, спасибо, я посмотрел и догадался - что-то связанное с perl. Но это не "мой" язык, да и програмировать вообще не хотелось - задача не той встречаемости. Но был хороший повод поковырять регвыры.
Re: Регулярные выражения
Добавлено: 2011-03-16 17:50:27
hizel
я так и не понял, причем тут программирование :-(
Re: Регулярные выражения
Добавлено: 2011-03-17 7:48:51
manefesto
перл и регулярные выражения многие считают синонимами
это не так.
есть отдельная книга про регэкспы...и поверь, она не про перл