Страницы: 1 2 След.
RSS
Существует ли программа (не онлайн) для тестирования регулярных выражений?, перед вставкой в VBA код Excel
 
Доброе Утро! Подскажите, кто-то знает существует ли программка (не онлайн, а с инсоляцией на комп) для визуального тестирования регулярных выражений перед их вставкой в программный код VBA Excel? Заранее большое спасибо.
одинокий странник
 
А чем онлайн не угодил?
Хотите в VBA - так напишите сами. Там всё просто, - форма с 2 текстбоксами и 1 кнопкой, и 5 строк кода.
 
Вот предлагал ZVI
На всякий случай инфо для тех, кто осваивает регулярные выражения: существуют различные утилиты для облегчения выбора шаблона (выбор описанных текстом шаблонов из меню) и оперативного тестирования.
Одна из них, бесплатная, удобная, но на английском: Regular Expression Laboratory http://www.silveragesoftware.com/rxl.html
Regular Expression Laboratory
 
http://www.excelworld.ru/forum/2-1017-1#11371
 
Цитата
Kuzmich написал: Regular Expression Laboratory http://www.silveragesoftware.com/rxl.html
Kuzmich, спасибо большое!
Изменено: JeyCi - 25.10.2015 19:36:54
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
JeyCi
Это надо благодарить Владимира ( ZVI ), он давал такую ссылку
 
ВСЕМ Спасибо  :)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
JeyCi
А удалось установить Regular Expression Laboratory?
Там в Help есть синтаксис регулярных выражений и примеры. Удачи!
 
Цитата
Kuzmich написал: Там в Help есть синтаксис
именно в help меня и выкинуло сразу после установки - мне понравилось всё, что там  8)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Всем огромное спасибо, только подскажите, пожалуйста, у Вас разве не возникает ошибки при наложении шаблонов.



Или я что-то не правильно делаю?
одинокий странник
 
Насколько помню в RegExp VB недоступно использование просмотра "назад". Вы ведь это пытаетесь сделать? Или что Вы пытаетесь с чем сравнить выражением: ?<=a
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
я пытаюсь сделать шаблон "(?(?=если)то|иначе)"
одинокий странник
 
Подождите. Вы напишите словами что хотите сделать. Зачем приводить некорректный шаблон в качестве описания желаемого если он не работает?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
я пытаюсь сделать условие - т.е. в одном случае выбрать м в другом п - просто алгоритм условия.
одинокий странник
 
?= - это просмотр вперед.
?<= - это просмотр назад.
Применяются, чтобы найти значение по шаблону, но в отбор не возвращать то, что идет после ?=
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Используйте консольку браузера, например Chrome (я так делаю иногда).
Если консоль и онлайн не подходит, вот здесь это обсуждается: http://stackoverflow.com/questions/87350/what-are-good-grep-tools-for-windows
Из ответов выделяются Cygwin и PowerGREP. Также есть RegexBuddy. Что-то платное, а что-то бесплетаное, выбор за вами.

PS Похоже, я поздновато написал мнение по сабжу.
С уважением,
Федор/Все_просто
 
Цитата
SvetaS_love написал:
условие - т.е. в одном случае выбрать м в другом п
Не очень понятно. Если указывать | - это означает или. Или одно или другое.
Код
1
.Pattern = "(м|п)"

А что значит "в одно случае" непонятно. Надо ведь, вероятно, и случай в шаблоне описать?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Все_просто,спасибо...пошла смотреть.
The_Prist, я пыталась сделать реализация поиска по условию "Если то 1 нет 2" из стандартных шаблонов (?(?=если)то|иначе) , (?(n)то|иначе)  (https://ru.wikipedia.org/wiki/Регулярные_выражения).  The_Prist я точно Вас не понимаю, Вы как-то загадками говорите...
одинокий странник
 
Цитата
SvetaS_love написал:
по условию "Если то 1 нет 2"
И это я загадками говорю? :)
Если ЧТО? Как можно сделать условие, на зная с чем сравнивать? Например: Если три первых символа равны "мам" или "пап" - то отбираем. А Вы что хотите сделать условием или? Отобрать? Удалить? Цель регулярного выражения? Каким должен быть результат в зависимости от исходной строки?
Приведите строку из которой хотите что-то отобрать/удалить и напишите что должно в результате получиться.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Я хочу просто отобрать, а тут ошибка вылазит - на самом знаке "?" -он выделяется красным....
одинокий странник
 
The_Prist, честно говоря я хочу вставить условие выбора в выражение из прошлого поста  http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=70833&TITLE_SEO=70833-zegulya..., там было выражение "(.{16,}?)(?:;(?: {0,4}-| |$)|: {0,4}-)"
строки был
Скрытый текст
Само выражение работает
но я бы хотела ещё предусмотреть разбитие строки по знаку ","
но не так (.{16,}?)(?:;|,(?: {0,4}-| |$)|: {0,4}-)", а только в том случае, если между ":" и "." нет ";". То есть использовать условие ...Если то
одинокий странник
 
Чего Вы отобрать хотите? Вопросительный знак перед скобкой зачем Вам? Какую роль он по-Вашему играет? Если вопр.знак стоит перед выражением, то после вопр.знака должен идти второй идентификатор: равно, воскл.знак, точка-с-запятой. И потом символы или выражение, которое должно быть после основного шаблона, но не должно быть включено в выборку. При этом порой в таком выражении что-то должно быть и перед вопр.знаком(основной шаблон). Иначе выражение просто не сработает или вообще будет считаться ошибочным.
Например, возьмем шаблон:
.Pattern = "iphone(?=5S|6)"
он отберет iphone в строке "iphone5S" и "iphone4". При этом сами символы 5S и 4 не будут включены в выборку.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist, поэтому думала просто протестировать шаблон условия на элементарном примере в программке  
Цитата
регулярных выражений перед их вставкой в программный код VBA Excel
одинокий странник
 
Давайте расскажу о регулярках.
Есть два типа Lookaround'ов:
LookBehind (вид с конца, в VBA не поддерживается),
LookAhead (вид с начала, поддерживается).

LookAround'ы бывают также:
Положительными (то есть рассматриваемое выражение будет ЧТО-ТО содержать),
Отрицательными (то есть рассматриваемое выражение НЕ будет что-то содержать).

Эти две типологии комбинируются, позволяя выражать очень интересные вещи (например, positive lookahead, negative lookbehind...).

LookAround целесообразно (не обязательно, но мне это в свое время позволило лучше разобраться в сабже) использовать когда необходимо проверить КАК МИНИМУМ 2 условия, иначе делается простой match.

LookAround хорош для валидации разного рода выражений, например, паролей. У меня на рабочем месте (условно) необходимо составлять пароль для входа в систему, который бы содержал не меньше 6 символов, минимум 1 из которых - цифра, минимум 1 - строчная буква, минимум 1 - заглавная буква. Вот такого рода условия видятся мне идеальным полем для использования lookaround'а.
Ниже код, который используется для означенных lookaround'ов:
Код
1
2
(?=foo) - положительный lookahead,
(?<=foo) - отрицательный lookahead.

Более подробно можно узнать вот здесь (правда на английском) → http://www.rexegg.com/regex-lookarounds.html
С уважением,
Федор/Все_просто
 
Я так понимаю, это продолжение этой темы?
 
так,я уже совсем ничего не понимаю,  :oops:
то о чём Вы говорите:
(?=шаблон) Позитивный просмотр вперёд Людовик(?=XVI) ЛюдовикXV, ЛюдовикXVI, ЛюдовикXVIII, ЛюдовикLXVII, ЛюдовикXXL
(?!шаблон) Негативный просмотр вперёд (с отрицанием) Людовик(?!XVI) ЛюдовикXV, ЛюдовикXVI, ЛюдовикXVIII, ЛюдовикLXVII, ЛюдовикXXL
(?<=шаблон) Позитивный просмотр назад (?<=Сергей )Иванов Сергей Иванов, Игорь Иванов
(?<!шаблон) Негативный просмотр назад (с отрицанием) (?<!Сергей )Иванов Сергей Иванов, Игорь Иванов

но, я хотела именно с условием

(?(?=если)то|иначе)  

(?(n)то|иначе)        

             Пример               Соответствие
             (а)?(?(1)м|п)         мам,пап
одинокий странник
 
МВТ, в той теме всё работает, была просто попытка проверить элементарный алгоритм с условием....
одинокий странник
 
У Вас совершенно непонятно зачем скобки после вопр.знака. Я уже написал, что после ? должны идти не скобки, а метасимвол добавочный, который укажет RegExp, что с этим ? делать. А после уже можно и скобки, если предполагается туда какое-то выражение отдельно запихнуть.
Вам надо сначала книжку бы по регуляркам почитать. Поищите Бен Форта "RegExp за 10 минут". Кажется как-то так называется. Времени много не займет, но поможет освоить регулярки. Потому что сейчас получается, что Вас надо учить разбирать и работать с RegExp с нуля, т.к. Вы не понимаете что какой метасимвол должен делать и как его правильно применять.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist, спасибо, читала,там такого нет....
одинокий странник
 
и Регулярные выражения сборинк рецептов==Ян Гойвертс Стивен Левитан тоже читала и там такого нет
одинокий странник
Страницы: 1 2 След.
Читают тему
Наверх
Loading...