Существует ли программа (не онлайн) для тестирования регулярных выражений?, перед вставкой в VBA код Excel
Пользователь
Сообщений: Регистрация: 14.07.2015
25.10.2015 09:41:51
Доброе Утро! Подскажите, кто-то знает существует ли программка (не онлайн, а с инсоляцией на комп) для визуального тестирования регулярных выражений перед их вставкой в программный код VBA Excel? Заранее большое спасибо.
одинокий странник
Пользователь
Сообщений: Регистрация: 23.12.2012
25.10.2015 10:02:43
А чем онлайн не угодил? Хотите в VBA - так напишите сами. Там всё просто, - форма с 2 текстбоксами и 1 кнопкой, и 5 строк кода.
Пользователь
Сообщений: Регистрация: 21.12.2012
25.10.2015 10:38:07
Вот предлагал ZVI На всякий случай инфо для тех, кто осваивает регулярные выражения: существуют различные утилиты для облегчения выбора шаблона (выбор описанных текстом шаблонов из меню) и оперативного тестирования. Одна из них, бесплатная, удобная, но на английском: Regular Expression Laboratory Regular Expression Laboratory
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Пользователь
Сообщений: Регистрация: 21.12.2012
25.10.2015 20:08:22
Это надо благодарить Владимира ( ZVI ), он давал такую ссылку
Пользователь
Сообщений: Регистрация: 27.11.2013
25.10.2015 20:19:45
ВСЕМ Спасибо
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Пользователь
Сообщений: Регистрация: 21.12.2012
25.10.2015 20:29:16
А удалось установить Regular Expression Laboratory? Там в Help есть синтаксис регулярных выражений и примеры. Удачи!
именно в help меня и выкинуло сразу после установки - мне понравилось всё, что там
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Пользователь
Сообщений: Регистрация: 14.07.2015
25.10.2015 22:09:48
Всем огромное спасибо, только подскажите, пожалуйста, у Вас разве не возникает ошибки при наложении шаблонов.
Или я что-то не правильно делаю?
одинокий странник
Пользователь
Сообщений: Регистрация: 15.09.2012
Профессиональная разработка приложений для MS Office
25.10.2015 22:13:40
Насколько помню в RegExp VB недоступно использование просмотра "назад". Вы ведь это пытаетесь сделать? Или что Вы пытаетесь с чем сравнить выражением: ?<=a
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пользователь
Сообщений: Регистрация: 14.07.2015
25.10.2015 22:18:44
я пытаюсь сделать шаблон "(?(?=если)то|иначе)"
одинокий странник
Пользователь
Сообщений: Регистрация: 15.09.2012
Профессиональная разработка приложений для MS Office
25.10.2015 22:19:50
Подождите. Вы напишите словами что хотите сделать. Зачем приводить некорректный шаблон в качестве описания желаемого если он не работает?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пользователь
Сообщений: Регистрация: 14.07.2015
25.10.2015 22:22:01
я пытаюсь сделать условие - т.е. в одном случае выбрать м в другом п - просто алгоритм условия.
одинокий странник
Пользователь
Сообщений: Регистрация: 15.09.2012
Профессиональная разработка приложений для MS Office
25.10.2015 22:22:27
?= - это просмотр вперед. ?<= - это просмотр назад. Применяются, чтобы найти значение по шаблону, но в отбор не возвращать то, что идет после ?=
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пользователь
Сообщений: Регистрация: 10.06.2013
25.10.2015 22:26:32
Используйте консольку браузера, например Chrome (я так делаю иногда). Если консоль и онлайн не подходит, вот здесь это обсуждается: Из ответов выделяются Cygwin и PowerGREP. Также есть RegexBuddy. Что-то платное, а что-то бесплетаное, выбор за вами.
PS Похоже, я поздновато написал мнение по сабжу.
С уважением, Федор/Все_просто
Пользователь
Сообщений: Регистрация: 15.09.2012
Профессиональная разработка приложений для MS Office
25.10.2015 22:27:55
Цитата
SvetaS_love написал: условие - т.е. в одном случае выбрать м в другом п
Не очень понятно. Если указывать | - это означает или. Или одно или другое.
Код
.Pattern = "(м|п)"
А что значит "в одно случае" непонятно. Надо ведь, вероятно, и случай в шаблоне описать?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пользователь
Сообщений: Регистрация: 14.07.2015
25.10.2015 22:33:38
,спасибо...пошла смотреть. , я пыталась сделать реализация поиска по условию "Если то 1 нет 2" из стандартных шаблонов (?(?=если)то|иначе) , (?(n)то|иначе) (). я точно Вас не понимаю, Вы как-то загадками говорите...
одинокий странник
Пользователь
Сообщений: Регистрация: 15.09.2012
Профессиональная разработка приложений для MS Office
И это я загадками говорю? Если ЧТО? Как можно сделать условие, на зная с чем сравнивать? Например: Если три первых символа равны "мам" или "пап" - то отбираем. А Вы что хотите сделать условием или? Отобрать? Удалить? Цель регулярного выражения? Каким должен быть результат в зависимости от исходной строки? Приведите строку из которой хотите что-то отобрать/удалить и напишите что должно в результате получиться.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пользователь
Сообщений: Регистрация: 14.07.2015
25.10.2015 22:47:05
Я хочу просто отобрать, а тут ошибка вылазит - на самом знаке "?" -он выделяется красным....
одинокий странник
Пользователь
Сообщений: Регистрация: 14.07.2015
25.10.2015 22:53:18
, честно говоря я хочу вставить условие выбора в выражение из прошлого поста , там было выражение "(.{16,}?)(?:;(?: {0,4}-| |$)|: {0,4}-)" строки был
Скрытый текст
и
1. ГОТОВА КОНЦЕРВОВАНА РИБА У ГЕРМЕТИЧНО ЗАКРИТИХ ПОСУДИНАХ - "ПРЕСЕРВИ": -ШМАТОЧКИ ФІЛЕ ОСЕЛЕДЕЦЯ БЕЗ ШКІРИ В ОЛІЇ 500ГР; -ФІЛЕ ОСЕЛЕДЕЦЯ БЕЗ ШКІРИ В ОЛІЇ 750ГР;
1. ГОТОВА КОНЦЕРВОВАНА РИБА У ГЕРМЕТИЧНО ЗАКРИТИХ ПОСУДИНАХ - "ПРЕСЕРВИ": -ПРЕСЕРВИ РИБНІ ОСЕЛЕДЕЦЬ В ОЛІЇ 180ГР ТМ"ОХОТСКАЯ"-1ШТ; -ПРЕСЕРВИ РИБНІ ОСЕЛЕДЕЦЬ В ОЛІЇ З АРОМАТОМ ПАПРИКИ 180ГР ТМ"ОХОТСКАЯ"-1ШТ; -ПРЕСЕРВИ РИБНІ ОСЕЛЕДЕЦЬ З МОРСЬКОЮ КАПУСТОЮ 500ГР ТМ"ОХОТСКАЯ"-1ШТ; -ПРЕСЕРВИ РИБНІ ОСЕЛЕДЕЦЬ В ОЛІЇ "5 ПЕРЦІВ" 500ГР ТМ"NORVEN"-1ШТ; -ПРЕСЕРВИ РИБНІ ОСЕЛЕДЕЦЬ ПРЯНО-ПІКАНТНИЙ В ОЛІЇ 300ГР ТМ"NORVEN"-1ШТ; ВИРОБНИК: ТОВ "ЮФК" UA ЧАСТИНА МІСЦЯ - ВСЬОГО 5 БАНОК, ЗАПАКОВАНІ В ПОЛІМЕРНУ БАНКУ ОБТЯНУТІ П/П ПЛІВКОЮ, В ПІНОПЛАСТОВОМУ КОРОБІ З ЛЬОДОМ.
Само выражение работает но я бы хотела ещё предусмотреть разбитие строки по знаку "," но не так (.{16,}?)(?:;|,(?: {0,4}-| |$)|: {0,4}-)", а только в том случае, если между ":" и "." нет ";". То есть использовать условие ...Если то
одинокий странник
Пользователь
Сообщений: Регистрация: 15.09.2012
Профессиональная разработка приложений для MS Office
25.10.2015 22:55:32
Чего Вы отобрать хотите? Вопросительный знак перед скобкой зачем Вам? Какую роль он по-Вашему играет? Если вопр.знак стоит перед выражением, то после вопр.знака должен идти второй идентификатор: равно, воскл.знак, точка-с-запятой. И потом символы или выражение, которое должно быть после основного шаблона, но не должно быть включено в выборку. При этом порой в таком выражении что-то должно быть и перед вопр.знаком(основной шаблон). Иначе выражение просто не сработает или вообще будет считаться ошибочным. Например, возьмем шаблон: .Pattern = "iphone(?=5S|6)" он отберет iphone в строке "iphone5S" и "iphone4". При этом сами символы 5S и 4 не будут включены в выборку.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пользователь
Сообщений: Регистрация: 14.07.2015
25.10.2015 22:56:43
, поэтому думала просто протестировать шаблон условия на элементарном примере в программке
Цитата
регулярных выражений перед их вставкой в программный код VBA Excel
одинокий странник
Пользователь
Сообщений: Регистрация: 10.06.2013
25.10.2015 22:58:16
Давайте расскажу о регулярках. Есть два типа Lookaround'ов: LookBehind (вид с конца, в VBA не поддерживается), LookAhead (вид с начала, поддерживается).
LookAround'ы бывают также: Положительными (то есть рассматриваемое выражение будет ЧТО-ТО содержать), Отрицательными (то есть рассматриваемое выражение НЕ будет что-то содержать).
Эти две типологии комбинируются, позволяя выражать очень интересные вещи (например, positive lookahead, negative lookbehind...).
LookAround целесообразно (не обязательно, но мне это в свое время позволило лучше разобраться в сабже) использовать когда необходимо проверить КАК МИНИМУМ 2 условия, иначе делается простой match.
LookAround хорош для валидации разного рода выражений, например, паролей. У меня на рабочем месте (условно) необходимо составлять пароль для входа в систему, который бы содержал не меньше 6 символов, минимум 1 из которых - цифра, минимум 1 - строчная буква, минимум 1 - заглавная буква. Вот такого рода условия видятся мне идеальным полем для использования lookaround'а. Ниже код, который используется для означенных lookaround'ов:
Более подробно можно узнать вот здесь (правда на английском) →
С уважением, Федор/Все_просто
Пользователь
Сообщений: Регистрация: 01.02.2015
25.10.2015 22:59:56
Я так понимаю, это продолжение ?
Пользователь
Сообщений: Регистрация: 14.07.2015
25.10.2015 23:04:23
так,я уже совсем ничего не понимаю, то о чём Вы говорите: (?=шаблон) Позитивный просмотр вперёд Людовик(?=XVI) ЛюдовикXV, ЛюдовикXVI, ЛюдовикXVIII, ЛюдовикLXVII, ЛюдовикXXL (?!шаблон) Негативный просмотр вперёд (с отрицанием) Людовик(?!XVI) ЛюдовикXV, ЛюдовикXVI, ЛюдовикXVIII, ЛюдовикLXVII, ЛюдовикXXL (?<=шаблон) Позитивный просмотр назад (?<=Сергей )Иванов Сергей Иванов, Игорь Иванов (?<!шаблон) Негативный просмотр назад (с отрицанием) (?<!Сергей )Иванов Сергей Иванов, Игорь Иванов
но, я хотела именно с условием
(?(?=если)то|иначе)
(?(n)то|иначе)
Пример Соответствие (а)?(?(1)м|п) мам,пап
одинокий странник
Пользователь
Сообщений: Регистрация: 14.07.2015
25.10.2015 23:08:15
, в той теме всё работает, была просто попытка проверить элементарный алгоритм с условием....
одинокий странник
Пользователь
Сообщений: Регистрация: 15.09.2012
Профессиональная разработка приложений для MS Office
25.10.2015 23:09:15
У Вас совершенно непонятно зачем скобки после вопр.знака. Я уже написал, что после ? должны идти не скобки, а метасимвол добавочный, который укажет RegExp, что с этим ? делать. А после уже можно и скобки, если предполагается туда какое-то выражение отдельно запихнуть. Вам надо сначала книжку бы по регуляркам почитать. Поищите Бен Форта "RegExp за 10 минут". Кажется как-то так называется. Времени много не займет, но поможет освоить регулярки. Потому что сейчас получается, что Вас надо учить разбирать и работать с RegExp с нуля, т.к. Вы не понимаете что какой метасимвол должен делать и как его правильно применять.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пользователь
Сообщений: Регистрация: 14.07.2015
25.10.2015 23:11:00
, спасибо, читала,там такого нет....
одинокий странник
Пользователь
Сообщений: Регистрация: 14.07.2015
25.10.2015 23:12:35
и Регулярные выражения сборинк рецептов==Ян Гойвертс Стивен Левитан тоже читала и там такого нет