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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Mavrikii

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

    Всего записей: 15426 | Зарегистр. 20-09-2014 | Отправлено: 23:55 02-05-2022
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mavrikii
    Я в личку человеку пишу. Если только вы хотите обсуждать.

    Всего записей: 4540 | Зарегистр. 03-05-2006 | Отправлено: 00:36 03-05-2022
    obtim



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть файл, в котором появляются строчки вида
    ============================================
    03ido.za@yalon.ort.org.il:Ronen1616
     
    Первая строка - одинаковая всегда.
    Во второй строке(за ней) текст может быть разным, но всегда есть @ и потом :
     
    В файле есть строчки с текстом другого вида(в том числе пустые строки)
    Есть ли какой-то способ выделить именно конструкцию из таких строк, для последующего удаления?
    Остальной текст не должен пострадать. В остальном тексте могут встречаться @ и :

    ----------
    Дьявол коварен - он может явиться к нам просто в образе дьявола

    Всего записей: 9019 | Зарегистр. 03-03-2002 | Отправлено: 13:35 21-06-2022
    los

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    obtim, добавьте еще несколько строк примера и уточните какую программу вы хотите использовать.
     
    Не совсем понятно:
    03ido.za@yalon.ort.org.il:Ronen1616
     
    03ido.za@yalon.ort.org.il:Ronen1616____999999
    03ido.za@yalon.ort.org.il:Ronen
    03ido.za@yalon.ort.org.il:
    И т.п. должны попадать под выделение или нет?
     
    03ido.za@любойтекст:любойтекст
    это единственное условие или есть еще какие-то?

    Всего записей: 7641 | Зарегистр. 08-09-2001 | Отправлено: 14:05 21-06-2022
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    obtim
    просто замена на пустую строку
    ^={44}\r?\n.*@.*:.*$
    ^ и $ зависят от того, где использовать. для обычных регулярок нужен модификатор m
    {44} это для точного числа, можно заменить, к примеру, на {10,}, то есть 10 и больше.

    Всего записей: 15426 | Зарегистр. 20-09-2014 | Отправлено: 20:45 21-06-2022
    D1D1D1D

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Привет! Если все гласные и согласные в тексте условно обозначены символами < и > — можно ли на этой основе вести поиск по количеству слогов? То есть, к примеру, найти слово, в котором 10 слогов? Пытался как-то так, но не то — [><]{10}

    Всего записей: 1384 | Зарегистр. 05-04-2010 | Отправлено: 13:17 18-07-2022
    Alex_Piggy

    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Доброе время, D1D1D1D
    "В слове столько слогов, сколько гласных букв". Значит слог - одна гласная, перед и после которой может быть произвольное количество согласных (+дефис?).
    >*(<>*){10}
    [бвгджзйклмнпрстфхцчшщъь-]*([ауоыэяюёие][бвгджзйклмнпрстфхцчшщъь-]*){10}
    Обязательны границы слова - например с помощью \b. Зависит от языка.

    Всего записей: 1902 | Зарегистр. 07-08-2002 | Отправлено: 14:09 18-07-2022
    AntikillerPM

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    пожалуйста, подскажите в EmEditor как регуляркой удалить повторяющиеся слова из строки
    было
    Иванов Иван Иванович Иванов Иван Иванович
    Петр Петрович Петров Петр Петрович
    чтоб стало
    Иванов Иван Иванович
    Петров Петр Петрович
    регулярка ^(?:^|(?:[\p{Punct}\h\v]+))(?i)(\b[^\p{Punct}\h\v]+\b).*\b\1 с заменой \1 приводит к виду Иванов Иван Иванович, но она же находит и Петр Петрович Петров Петр Петрович и приводит к виду Петр Петрович.

    Всего записей: 303 | Зарегистр. 01-05-2009 | Отправлено: 15:29 10-08-2022
    AntikillerPM

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    как из строки повторяющиеся Иванов Иван Иванович Иванов Иван Иванович удалить разобрался.  
    А такое Петр Петрович Петров Петр Петрович вычистить регуляркой скорее и не получится.

    Всего записей: 303 | Зарегистр. 01-05-2009 | Отправлено: 12:14 12-08-2022
    Mavrikii

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

    Цитата:
    А такое Петр Петрович Петров Петр Петрович вычистить регуляркой скорее и не получится.

    ну так это для вас очевидно, что первые две не представляют из себя им и фамилию.. регулярка об это знать не будет.

    Всего записей: 15426 | Зарегистр. 20-09-2014 | Отправлено: 03:50 13-08-2022
    sikemo

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

    Цитата:
    А такое Петр Петрович Петров Петр Петрович вычистить

     
    если пойдёте по схеме  
    (\w+)(\w+)(\w+)
     
    replace: \3

    Всего записей: 1327 | Зарегистр. 27-11-2008 | Отправлено: 14:18 19-08-2022
    Celsus



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно ли с помощью регулярных выражений вырезать или скопировать слово и вставить его в конец другой строки после определенного слова или символа? Сами вырезаемые слова разные (но одного формата, например 000-00-00 или (00:00) или AB000), а слова и символы, после которых они вставляются в конце другой строки, одни и те же
     
    Пример:
     
    0001-01-01 AB001 ..... . .... .. ..... (01:01)
    AAAAAAA
    BBBBBB
    CCCCC
     
    0002-02-02 AB002 ..... . .... .. ..... (02:02)
    AAAAAAA
    BBBBBB
    CCCCC
     
    Нужно:
     
    AB001 ..... . .... .. .....
    AAAAAAA AB001
    BBBBBB 0001-01-01  
    CCCCC 01:01
     
    AB002 ..... . .... .. .....
    AAAAAAA AB002
    BBBBBB 0002-02-02  
    CCCCC 02:02

    Всего записей: 384 | Зарегистр. 02-04-2011 | Отправлено: 21:47 26-08-2022 | Исправлено: Celsus, 21:59 26-08-2022
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Celsus
    Это уже труднее сделать. Если настроить алгоритм по AAAAAAA, а там окажется RRRRRR то труды будут напрасны. В теории надо найти весь блок разделив на группы, а потом ссылками на группы располагать в любом порядке.
     

    Всего записей: 4540 | Зарегистр. 03-05-2006 | Отправлено: 23:39 26-08-2022
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Celsus
    зависит от используемых средств, обратных ссылок на группы, символа новой строки и тд и тп.
    например так https://regex101.com/r/Mv092a/1

    Всего записей: 15426 | Зарегистр. 20-09-2014 | Отправлено: 23:40 26-08-2022
    Celsus



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

    Цитата:
    Если настроить алгоритм по AAAAAAA, а там окажется RRRRRR то труды будут напрасны

    Строки AAA, BBB, CCC не меняются. Меняется только первая строка в блоке, после строк A,B,C также бывают разные строки разного количества от 1 до 9, блоки разделены двумя пустыми строками без пробелов.

    Всего записей: 384 | Зарегистр. 02-04-2011 | Отправлено: 00:40 27-08-2022
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Celsus
    щелкните мою ссылку, вставьте свой текст в верхнее поле и посмотрите результат.

    Всего записей: 15426 | Зарегистр. 20-09-2014 | Отправлено: 00:59 27-08-2022
    Celsus



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mavrikii
    Круто, получилось. Огромное спасибо! Теперь кажется понял принцип с блоками.
     
    Добавление: Я немного модифицировал ваш код:
    Было:
    ([\d\-]+)\s+([^\s]+)\s+(.*)\s+\(([\d:]+)\)\r?\n(.*)\r?\n(.*)\r?\n(.*)
    $2 $3\n$5 $2\n$6 $1\n$7 $4  
    Стало:
    ([\d\-]+)\s+\[([^\(]*)\]\s+(.*)\s+\(([\d:]+)\)\r?\n(.*)\r?\n(.*)\r?\n(.*)
    \[$2\] $3\n$5 $2\n$6 $1\n$7 $4
     
    Так при копировании второго слова убираются его квадратные скобки:

    Код:
    0001-01-01 [AB001] ..... . .... .. ..... (01:01)
    AAAAAAA
    BBBBBB
    CCCCC
     
    [AB001] ..... . .... .. .....
    AAAAAAA AB001
    BBBBBB 0001-01-01
    CCCCC 01:01
     

    Еще для себя я добавил  \n(.*) к поиску и \n$8 к замене, так как у меня там есть еще восьмое слово, строка с которым не меняется, поэтому я не рассказывал про него.

    Всего записей: 384 | Зарегистр. 02-04-2011 | Отправлено: 01:14 27-08-2022 | Исправлено: Celsus, 07:14 27-08-2022
    Mavrikii

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

    Цитата:
    \[$2\]  

    экранировать в самой замене [] нет смысла, это нужно для регулярного выражения, так как может использоваться как определение группы символов.

    Всего записей: 15426 | Зарегистр. 20-09-2014 | Отправлено: 22:36 28-08-2022
    Celsus



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

    Всего записей: 384 | Зарегистр. 02-04-2011 | Отправлено: 23:20 29-08-2022
    PryMan



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Гуру, подскажите, пожалуйста.
    Возможно ли регулярками найти строки заканчивающиеся на слеш "/", но при этом не находить строки в которых слешей больше чем один?
     
    Иванов/Иван/Иванович
    Иванов//Иван//Иванович/
    Иванов Иван Иванович/ <- найти нужно только эту
     
    P.S. Кодировка koi-8, если это имеет значение.

    Всего записей: 157 | Зарегистр. 01-08-2018 | Отправлено: 02:25 06-09-2022 | Исправлено: PryMan, 02:26 06-09-2022
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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