Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1 2 След.
RSS
Где найти инфо по регулярным выражениям?
 
Ребят, подскажите пожалуйста ресурс где понятным языком (и желательно с примерами) написано про применение регулярных выражений.
Уже неделю "курю" их и никак не получается. То кавычки оставляет, то из нескольких слов через пробел или запятую выбирает только первое...
 
И вам тоже здравствуйте.
На мой взгляд, один из лучших справочников по RegExp. А в общем случае вам нужно "правильное" мышление. Для начала, что вы подразумеваете под инфо? Учебник? Книги по регулярным выражениям существуют в природе. Сборник готовых заклинаний шаблонов на все случаи жизни? Как правило, жизнь разнообразнее, и многие задачи приходится решать по частям в комбинации с другими подходами, лежащими вне regexp.
Например, задачу преобразовать одним регулярным выражением фразу MyDBAIsInLoveCamelCase в My DBA Is In Love Camel Case. Но двумя последовательно применёнными - вполне.
Изменено: Андрей VG - 10 Окт 2018 05:43:18
 
Андрей VG, "инфо", это модераторы переименовали. "Регулярные выражения" было лучше?...[МОДЕРАТОР]
о Вашей ссылке обязательно завтра буду изучать. Спасибо!
Что касается "правильного мышления". Именно его я и хочу приобрести. Готовые шаблоны - это полный бред. Подойдут под узко заточенную ситуацию, а когда "ситуация" изменится работать все перестанет. Поэтому и пытаюсь изучить и понять что к чему там (тем более что если потом опять что то менять, это надо понимать всё) и желательно с примерами, ну пример в Вашем примере фраза "MyDBAIsInLoveCamelCase" превращается во фразу "My DBA Is In Love Camel Case". Я так понимаю что тут определение разделения идет по заглавной букве и последовательность более одной заглавной буквы подряд считать одним словом. Циклом в vb.net или vba я это разобрал бы с легкостью. Но мне нужны (при чем не для одной ситуации а для множества в разных областях программы) именно регулярные выражения, ибо есть вещи, на которые, чтобы разобрать циклом уходит строк 200 кода (и таких "вещей" штук 15, математика не сложная), а то и поболее, в то время как RegEx справляется с этим всего 4 строчками и 1 паттерном.
Изменено: Andrew - 10 Окт 2018 11:00:47
 
Цитата
Бен Форта. Регулярные выражения за 10 минут

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan, Спасибо, тоже прочитаю
 
Кратко и по делу http://www.script-coding.com/WSH/RegExp.html#4..
 
Андрей VG, Казанский, Поддержу. Прекрасный ресурс, всегда им пользуюсь. Все четко, по делу, лаконичный не отвлекающий дизайн. Не всегда полный, но для начала или быстрой справки - замечательный.
Изменено: БМВ - 10 Окт 2018 10:18:51
 
Цитата
БМВ написал:
Казанский , Поддержу
Как будто я дал ссылку куда-то в другое место :)
 
ИМХО, замечательный ресурс для построения выражения как для поиска, так и для замены. (+ можно сохранять результат)

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Доброе утро,
могу скинуть мануал "Регулярные выражения. 10 минут на урок". 175,6 МБ
Часто ним пользуюсь.
Кому нужно, пишите в личку
Формат: PDF
Изменено: ivanok_v2 - 10 Окт 2018 10:10:34
 
Цитата
Андрей VG написал:
Как будто я дал ссылку куда-то в другое место
Андрей, у Вас не так адрес приметен, надо или открыть или мышаком навести :-)  Думаю Казанский по той же причине дубль сделал.
 
Цитата
Andrew написал:
Уже неделю "курю" их и никак не получается.
Проблема регулярных выражений не в том, что их медленно изучаешь, а в том, что мгновенно забываешь :(  
Владимир
 
Цитата
sokol92 написал:
мгновенно забываешь
лично на моем рабочем месте висит распечатанная выжимка с описанием. (табличкой)
 
sokol92, я так не думаю. Дело не в регулярных выражениях, а том что они вам не нужны, вот и забываете. Или пользуетесь раз в 10 лет.
JayBhagavan, ресурс у меня уже в закладках, на нем тестировал, а потом нашел плагин для NotePad++ и тестирую там. Вообще я посмотрел, есть такие бешеные чуваки, которые написали программу для редактирования RegEx и продают ее по 20 евро в сети. Но как бы за конструктор еще можно заплатить такую цену, но вот за простой редактор - этот парень "редиска"
 
Андрей VG, да, пардон, не заметил ссылку на тот же ресурс. Но моя ссылка конкретно на метасимволы! :)
Цитата
Андрей VG написал:
многие задачи приходится решать по частям в комбинации с другими подходами, лежащими вне regexp.Например, задачу преобразовать одним регулярным выражением фразу MyDBAIsInLoveCamelCase в My DBA Is In Love Camel Case.
А Trim считается другим подходом? ;)
Код
Sub bb()
With CreateObject("vbscript.regexp")
  .Pattern = "([A-Z][a-z]+|[A-Z]+(?=([A-Z][a-z]|$)))"
  .Global = True
  Debug.Print Trim(.Replace("MyDBAIsInLoveCamelCase", " $1"))
  Debug.Print Trim(.Replace("MyDBAIsInLoveCamelCaseEND", " $1"))
End With
End Sub

My DBA Is In Love Camel Case
My DBA Is In Love Camel Case END
 
Казанский, попаразитировал на Вашем коде. Вариант без трима.
Скрытый текст

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Алексей, Иван огромное спасибо за варианты!
 
DBAIsInLoveCamelCase ?
Владимир
 
sokol92, прокольчик на этой фразе. :) Пока не знаю как его исправить...

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
А у Алексея работает. :)  
Владимир
 
sokol92, я исходил из задачи:
Цитата
Андрей VG написал:
преобразовать одним регулярным выражением
т.е. без доп. манипуляций. А так, да, работает.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Да я всё понимаю :). У меня "слету" тоже не получилось (не уверен, что это возможно).
Изменено: sokol92 - 11 Окт 2018 16:37:53
Владимир
 
Цитата
sokol92 написал:
Да я всё понимаю . У меня "слету" тоже не получилось (не уверен, что это возможно).
В Избушку  этим не пустят. Нужно рядом Шалаш ставить.  :)
 
Цитата
JayBhagavan написал:
Пока не знаю как его исправить...
По следам.
Код
Sub bb()
    With CreateObject("vbscript.regexp")
      '.Pattern = "(?!^[A-Z])([A-Z][a-z]+|[A-Z]+(?=([A-Z][a-z]|$)))"
      .Pattern = "([A-Z](?=[A-Z][a-z])|[a-z](?=[A-Z]))"
      .Global = True
      Debug.Print """" & .Replace("MyDBAIsInLoveCamelCase", "$1 ") & """"
      Debug.Print """" & .Replace("DBAIsInLoveCamelCaseEND", "$1 ") & """"
      Debug.Print """" & .Replace("DBIsAbbreviationOfDatabase", "$1 ") & """"
      Debug.Print """" & .Replace("TheDBIsAbbreviationOfDatabase", "$1 ") & """"
    End With
End Sub

Ещё раз всем огромное спасибо. :)
 
Цитата
RAN написал:
Нужно рядом Шалаш ставить.
Шалаш макрушника или будка регулярщика.
 
Цитата
БМВ написал:
Шалаш макрушника или будка регулярщика
Угу, и ещё фазенду BIщиков не мешало бы отгрохать :)
 
Андрей VG,  Ящик биящиков :-)
 
Цитата
БМВ написал:
Ящик биящиков :-)
BI простор нужен - для них специально правила форума на размер файла изменили ;)  Тут, Михаил, ошибка будет ящик это для вэмиайщиков :)
 
Цитата
Андрей VG написал: ([A-Z](?=[A-Z][a-z])|[a-z](?=[A-Z]))
Спасибо за паттерн. :)

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Теперь отлично - даже пробелы между словами не мешают!
Владимир
Страницы: 1 2 След.
Читают тему (гостей: 1)
Наверх