Регулярные выражения
Модератор: vadim64
-
- рядовой
- Сообщения: 24
- Зарегистрирован: 2009-06-21 11:08:34
- Контактная информация:
Регулярные выражения
Пытаюсь раскурить 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
---
Надо заменить/удалить подстроки с произвольным содержанием и предопределенными началом и концом.
---
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
---
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- terminus
- майор
- Сообщения: 2305
- Зарегистрирован: 2007-10-29 11:27:35
- Откуда: Рига
Re: Регулярные выражения
Эээ, кэп?
Код: Выделить всё
"begin del it [0-9] end"
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.
-
- рядовой
- Сообщения: 24
- Зарегистрирован: 2009-06-21 11:08:34
- Контактная информация:
Re: Регулярные выражения
Надо заменить/удалить подстроки с произвольным содержанием и предопределенными началом и концом.
Проблема - как обозначить подстроку, которой не должно быть в контейнере, или как определить что б искалась наименьшая строка "begin...<всё_что_угодно_кроме_end>...end"
Проблема - как обозначить подстроку, которой не должно быть в контейнере, или как определить что б искалась наименьшая строка "begin...<всё_что_угодно_кроме_end>...end"
-
- проходил мимо
Re: Регулярные выражения
Есть понятие: Жадность регулярных выражений. Это значит что регулярное выражение будет пытаться найти максимальную строку соответствующую шаблону. Почитайте здесь.
-
- рядовой
- Сообщения: 24
- Зарегистрирован: 2009-06-21 11:08:34
- Контактная информация:
Re: Регулярные выражения
Спасибо, про жадность я читал. Вопрос - как определить "нежаность" или отсутствие последовательности символов?
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: Регулярные выражения
я думаю что ваша задача не для регэкспов, а для обычного лексического парсёра, быстрее веселее и молодежнее
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
-
- рядовой
- Сообщения: 24
- Зарегистрирован: 2009-06-21 11:08:34
- Контактная информация:
Re: Регулярные выражения
hizel, да возможно, но вот что меня удивляет, так это отсутствие синтаксической возможности отрицать последовательность символов.
Практическая задача была такой - открыть страницу и удалить то, что не нужно. А с помощью регвыров у меня легко получается только удаление того, что хочу оставить.
Практическая задача была такой - открыть страницу и удалить то, что не нужно. А с помощью регвыров у меня легко получается только удаление того, что хочу оставить.
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: Регулярные выражения
много хавать будет, но если очень надо, извольте:
ваш вариант
мой вариант
использую ня pcretest
ваш вариант
Код: Выделить всё
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>
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: Регулярные выражения
можно даже сократить до
модификатор\опция какбэ намекает ;-)
Код: Выделить всё
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
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
-
- рядовой
- Сообщения: 24
- Зарегистрирован: 2009-06-21 11:08:34
- Контактная информация:
Re: Регулярные выражения
Не знаю, что такое pcretest. Но хотел что-то более халявное, чем программо писание, и что б работало в "блокнотах". Проще оказалось сто раз нажать Ctrl-F и стирать пальцами что не нужно.
Вобщем, всем спасибо.
Вобщем, всем спасибо.
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: Регулярные выражения
pcretest входит в библиотеку pcre, которая сама по себе есть Perl Compatible Regular Expressions
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
-
- рядовой
- Сообщения: 24
- Зарегистрирован: 2009-06-21 11:08:34
- Контактная информация:
Re: Регулярные выражения
Да, спасибо, я посмотрел и догадался - что-то связанное с perl. Но это не "мой" язык, да и програмировать вообще не хотелось - задача не той встречаемости. Но был хороший повод поковырять регвыры.
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: Регулярные выражения
я так и не понял, причем тут программирование :-(
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
- manefesto
- Группенфюррер
- Сообщения: 6934
- Зарегистрирован: 2007-07-20 8:27:30
- Откуда: Пермь
- Контактная информация:
Re: Регулярные выражения
перл и регулярные выражения многие считают синонимами
это не так.
есть отдельная книга про регэкспы...и поверь, она не про перл
это не так.
есть отдельная книга про регэкспы...и поверь, она не про перл