Как правильно написать регулярное выражение?

Тема в разделе "Другие языки программирования", создана пользователем shestale, 19 дек 2015.

  1. shestale
    Оффлайн

    shestale Ассоциация VN/VIP Преподаватель

    Сообщения:
    8.059
    Симпатии:
    4.488
    Для поиска по маске нужно создать регулярное выражение для выделенной цветом части строки, где:
    c:\program files\groover - не изменяемое название
    18122015 - дата создания адвари, будет изменяться
    1419 - модификация адвари, будет изменяться

    Попытался написать по аналогии с известными мне выражениями и получил вот такое:
    Может кто подскажет правильно или нет.
     
  2. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.382
    Симпатии:
    5.268
    Точней будет так
    Код (Text):
    \\groover\d{12}\\
    захватывать будет этот кусок вместе со слешами
    Код (Text):
    \groover181220151419\
     
    Kиpилл и shestale нравится это.
  3. shestale
    Оффлайн

    shestale Ассоциация VN/VIP Преподаватель

    Сообщения:
    8.059
    Симпатии:
    4.488
    А если количество цифр изменится, например номер модификации увеличится на порядок?
     
  4. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.493
    Симпатии:
    4.310
    Правильно. (от 1 цифры и больше)
    Тогда:
    Код (Text):
    \\groover\d{12,13}\\
    или по примеру твоего варианта.
     
    Kиpилл и shestale нравится это.
  5. shestale
    Оффлайн

    shestale Ассоциация VN/VIP Преподаватель

    Сообщения:
    8.059
    Симпатии:
    4.488
    тогда с учетом ваших поправок, вот такой вариант правильнее?
    Код (Text):
    \\groover\d{1,}\\
     
  6. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.382
    Симпатии:
    5.268
    такой вариант захватит и \groover1\ - а это как понимаю будет неправильно.
    Так что рекомендую использовать мой, а если
    то Dragokas,
    Код (Text):
    \\groover\d{12,13}\\
     
    shestale нравится это.
  7. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.493
    Симпатии:
    4.310
    shestale, я к сожалению тебе ответить не могу, т.к. не знаю, где ты это используешь и что ожидаешь получить.
    Например, чтобы в текстовом редакторе выделить всю строку по совпадению с шаблоном, то нужно писать что-то вроде:
    Код (Text):
    .*\\groover\d{1,}.*
    Но я так понял, это к --------------, а там свои правила.
     
    Последнее редактирование: 19 дек 2015
    shestale нравится это.
  8. shestale
    Оффлайн

    shestale Ассоциация VN/VIP Преподаватель

    Сообщения:
    8.059
    Симпатии:
    4.488
    не хочется привязываться к конкретному порядку цифр...мало ли чего взбредет в голову вирмейкерам и модификация будет например 10 разрядная)))
    Тогда может так?
    Код (Text):
    \\groover\d{8,}\\
    где 8 это количество цифр в дате, а уж более восьми это модификации.
     
  9. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.493
    Симпатии:
    4.310
    Да. Скорее всего так.
     
    shestale нравится это.
  10. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.382
    Симпатии:
    5.268
    можно и так, но помоему меньше 12 нет смысла ставить (а если что, то потом подкоректировать).
     
    shestale нравится это.
  11. shestale
    Оффлайн

    shestale Ассоциация VN/VIP Преподаватель

    Сообщения:
    8.059
    Симпатии:
    4.488
    Ок. Всем спасибо.
     
  12. regist
    Оффлайн

    regist гоняюсь за туманом Ассоциация VN/VIP VIP Разработчик

    Сообщения:
    11.382
    Симпатии:
    5.268
    shestale, замени лучше на
    Код (Text):
    \\groover\d{8}
    работать будет быстрее.
     

Поделиться этой страницей