Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Регулярные выражения

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97

Открыть новую тему     Написать ответ в эту тему

leftMIND

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
   Регулярные выражения
Обучающий материал
  • Книги    
  • Шпаргалки: от AZJIO (AutoIt3, PCRE) от Dave Child
  • wikipedia.org - Регулярные выражения на wiki  
  • edlinsoft.blogspot.com - Регулярные выражения в .NET Framework  
  • php.ru - Синтаксис регулярных выражений  
  • php.net - Синтаксис регулярных выражений  
  • regexpstudio.com - Регулярные выражения для Delphi  
    Официальные источники:
  • docs.notepad-plus-plus.org - Официальный источник Notepad++ (англ. яз.)  
  • pcre.org - Официальный справочник движка PCRE (англ. яз.)  

  •    Тестирование регулярных выражений
    Программы
    Онлайн сервисы
  • RegexBuddy - крутая и платная  
  • RegExp - бесплатно, AZJIO, PCRE, AutoIt3  
  • Expresso  
  • The Regex Coach  
  • RegExstar, Github (AutoHotKey, PCRE)
  • Обзор программ от ManHunter    
  • regexr.com здесь в Community множество готовых регулярных выражений  
  • pagecolumn.com - для javascript  
  • pagecolumn.com - для php  
  • cuneytyilmaz.com - для javascript  
  • php-include.ru - на флеш-плеере  
  • regex101.com  
  • easyregexp.ru  
  • debuggex.com - показывает структурно  

  •    Схожие темы
  • javascript регулярные выражения
  • PHP: Регулярные выражения (RegExp, Regular, eregi, preg)
  • Игра - Регулярно выражайтесь!
     
    первое сообщение темы...
    Обсуждение шапки данной темы ведётся в этой теме
    Рекомендации по составлению вопросов в данной теме:

  • Всего записей: 33 | Зарегистр. 07-04-2002 | Отправлено: 23:55 15-10-2002 | Исправлено: AZJIO, 15:18 12-02-2021
    Hjkma

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
    Спасибо, работает!
     
    Добавлено:
    Не работает на  

    Цитата:
    d:\users\vova\132465464 - john doe.txt

     
    И не работает в строках, где в именах файлов перед нужными словами есть -@=() и другие символы. Дайте пожалуйста более универсальный вариант регулярки.

    Всего записей: 242 | Зарегистр. 04-03-2015 | Отправлено: 17:33 26-05-2017 | Исправлено: Hjkma, 17:54 26-05-2017
    Abs62



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Hjkma
    Тогда так:

    Код:
    \\[^\\]*\bJohn Doe\b(?:[^\\]*$)


    ----------
    0 программистов ругал сердитый шеф
    Потом уволил одного, и стало их FF

    Всего записей: 6089 | Зарегистр. 22-10-2005 | Отправлено: 18:01 26-05-2017
    Hjkma

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
    Большое спасибо! Теперь все кажется работает.

    Всего записей: 242 | Зарегистр. 04-03-2015 | Отправлено: 18:04 26-05-2017
    Hjkma

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Опять нужна помощь. Теперь есть группа слов, разделенные запятыми. Задача: нужно пометить все одиночные слова, но не две и более слова, которые располагаются между запятыми.  
    Пример:
     

    Цитата:
    Tags: high heels, lake, glamour, black hair, self shot, selfie
     

    Нужно пометить именно эти слова: lake, glamour, selfie
    Подобрать регулярку не получается. Нужна помощь зала.

    Всего записей: 242 | Зарегистр. 04-03-2015 | Отправлено: 14:21 01-07-2017 | Исправлено: Hjkma, 16:44 01-07-2017
    sikemo

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    что считаем неодиночным словом пробел? дефис?
     
    \"[^\s]\w+\"

    Всего записей: 1329 | Зарегистр. 27-11-2008 | Отправлено: 15:55 01-07-2017
    Hjkma

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sikemo
    В нотепад++ не работает. Пусть будет и пробел и дефис. Но можно просто пробел, если сложно будет учитывать и дефис и пробел одновременно.
    upd. Упс, по ошибке вместо "запятые" написал "кавычки", прошу прощения, обновил пост.
    К слову и это:

    Цитата:
    ,[^\s]\w+\,

    тоже не работает. Работает это:

    Цитата:
    , [^\s]\w+\,

    но результат не полный, не все одиночные слова помечает.

    Всего записей: 242 | Зарегистр. 04-03-2015 | Отправлено: 16:21 01-07-2017 | Исправлено: Hjkma, 16:46 01-07-2017
    Abs62



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Hjkma

    Код:
    [,:]\s*\b\w+\b(?![ \-])


    ----------
    0 программистов ругал сердитый шеф
    Потом уволил одного, и стало их FF

    Всего записей: 6089 | Зарегистр. 22-10-2005 | Отправлено: 18:52 01-07-2017
    sikemo

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    проверял на  Akelpad

    Всего записей: 1329 | Зарегистр. 27-11-2008 | Отправлено: 19:18 01-07-2017
    Hjkma

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Abs62
    Спасибо большое, работает отлично.

    Всего записей: 242 | Зарегистр. 04-03-2015 | Отправлено: 19:37 01-07-2017
    drondo



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    имеется большой xml файл, примерно 30 тысяч строк вот фрагмент

    Код:
    <Property value="GcTechnologyRequirement.xml">
              <Property name="ID" value="TECH1" />
              <Property name="InventoryType" value="GcInventoryType.xml">
                <Property name="InventoryType" value="Substance" />
              </Property>
              <Property name="Amount" value="100" />
            </Property>
            <Property value="GcTechnologyRequirement.xml">
              <Property name="ID" value="COMUNCOMMON1" />
              <Property name="InventoryType" value="GcInventoryType.xml">
                <Property name="InventoryType" value="Substance" />
              </Property>
              <Property name="Amount" value="20" />
            </Property>

    возможно ли с помощью notepad++, коммандной строки или еще чего то легкодоступного для windows 10 извлечь значения из таких строк <Property name="ID" value="что то там" />, сохранить только из строк, содержащих ID?
    Интересует только значение, на выходе хочется получить текстовый файл разделенный переносами строк вот так оформленный:

    Код:
    TECH1
    COMUNCOMMON1
    и т.д.

    Всего записей: 464 | Зарегистр. 28-10-2005 | Отправлено: 13:49 13-08-2017 | Исправлено: drondo, 13:51 13-08-2017
    sikemo

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Akelpad фильтр по строкам Script> Linefilter.js > Include lines  ID\" value
    флажок регэкспа включить

    Всего записей: 1329 | Зарегистр. 27-11-2008 | Отправлено: 18:46 13-08-2017 | Исправлено: sikemo, 18:47 13-08-2017
    VadKomarov



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Всем здравствуйте. Я к сожаления мало знаю по регулярным выражениям, но понадобилось....
    Задача такая... пользователь получает документ с входящим номером, надо этот номер внести с базу данных.. мне надо написать "регулярку" что бы пользователь мог внести только лишь цифровой, цифровой с разделителем '/' или '-' а так же определенные буквы но не другие...
    Примеры
    123, 1/123, 1-123, 1с, 1сс, 1дсп, 1/1с .... и т.д.
    то есть цифры могут быть любыми буквы из заданных (с,сс,дсп) ну и могут быть разделители.
    Хотелось как можно короче и универсальнее написать "регулярку"
    Помогите пожалуйста.
    Спасибо.

    Всего записей: 100 | Зарегистр. 01-05-2005 | Отправлено: 04:03 11-09-2017
    VV189



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    В рамках вашей формулировки задачи будет работать так

    Код:
    \d+([/-]?\d*[дсп]*)

     
     

    Всего записей: 524 | Зарегистр. 10-09-2006 | Отправлено: 05:53 11-09-2017
    VadKomarov



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    VV189

    Цитата:
    В рамках вашей формулировки задачи будет работать так  
     
    Код:
    \d+([/-]?\d*[дсп]*)

     
    Спасибо огромное.
    а можно в крации расшифровать что и как обозначает, а так же вот эту картинку .. можно ссылку на этот редактор или в чем это сделано?
     
     
    а еще как допустим 1/1-123с
    и как можно ограничить что бы не было куча "сссссс" а максимум 2 что бы не получилось что ввели и поставили три "ссс" ну сто бы была возможность только "С" или "СС" или "ДСП" сделать...

    Всего записей: 100 | Зарегистр. 01-05-2005 | Отправлено: 06:03 11-09-2017 | Исправлено: VadKomarov, 06:20 11-09-2017
    VV189



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    а можно в крации расшифровать

    \d+ Цифровой символ (одно или более вхождений)
    [/-]? на данном месте в строке может стоять один из перечисленных символов (ноль или одно вхождений)
    \d* Цифровой символ (ноль или более вхождений)
    [дсп]* на данном месте в строке может стоять один из перечисленных символов (ноль или более вхождений)
     
    На скрине просто текстовый редактор
    Можете для простоты жизни использовать Notepad++ (регулярку я набросал именно в нем, а скрин с саблайма, т.к. для универсальности проверял еще и там из-за возможных отличий синтаксиса, ведь тип регулярки вы не уточнили).
     
     
     
     
    Добавлено:

    Цитата:
    а еще как допустим 1/1-123с  

    \d+([/-]?\d*[/-]?\d*[дсп]*)

    Цитата:
    как можно ограничить что бы не было куча "сссссс" а максимум 2

    а давайте вы кейс полностью раскроете и не будете по капле выцеживать ваши условия окружения
     
    Квантификатор для ноль-двух вхождений {0,2}
     
     
     

    Всего записей: 524 | Зарегистр. 10-09-2006 | Отправлено: 06:19 11-09-2017 | Исправлено: VV189, 06:29 11-09-2017
    YuS_2



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VV189

    Цитата:
    [дсп]* на данном месте в строке может стоять один из перечисленных символов (ноль или более вхождений)

    Небольшая поправка:
    не один из, а любой из... и в любом сочетании

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 09:24 11-09-2017
    VV189



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuS_2
    Тут согласен, абсолютно верное уточнение.

    Всего записей: 524 | Зарегистр. 10-09-2006 | Отправлено: 09:32 11-09-2017
    VadKomarov



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Спасибо за разъяснения.
     

    Цитата:
    \d+([/-]?\d*[/-]?\d*[дсп]*)  

     
    а еще подскажите  как допустим 1/1-123с сделать
    и как можно ограничить что бы не было куча "сссссс" а максимум 2 что бы не получилось что ввели и поставили три "ссс" ну что бы была возможность только "С" или "СС" или "ДСП" сделать...

    Всего записей: 100 | Зарегистр. 01-05-2005 | Отправлено: 09:33 14-09-2017
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    и как можно ограничить что бы не было куча "сссссс" а максимум 2 что бы не получилось что ввели и поставили три "ссс" ну что бы была возможность только "С" или "СС" или "ДСП" сделать

    вместо [дсп]*  написать (c{0,2}|дсп)? это в случае, если данные символы не являются обязательными.
    если нужны всегда, то (c{1,2}|дсп)

    Всего записей: 15528 | Зарегистр. 20-09-2014 | Отправлено: 09:43 14-09-2017 | Исправлено: Mavrikii, 10:07 14-09-2017
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VadKomarov, а перед буквами всегда сразу цифры или после цифр до букв может быть тире, слеш?  
    Предположил, что как в вашем примере после цифр сразу буквы (если они есть) и сделал более строгий вариант

    Код:
    \d+([/-]?\d)*(с{1,2}|дсп)?

     
     
    Добавлено:
     

    ----------
    Раздачи и акции

    Всего записей: 7198 | Зарегистр. 20-03-2009 | Отправлено: 10:25 14-09-2017
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Регулярные выражения


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru