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

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

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

    Цитата:
    {{categ|Бук|Веди|Колеси и мечтыlang=be}}  
    {{categ|Бук|Веди|Колеси и мечты|lang=bg}}  
    {{categ|Бук|Веди|Колеси и мечты|lang=zh-min}}

    (\{\{)[^|\n\r]+((\|[^|\n\r]+)){1,6}\|?lang=([^|\n\r]+)(\}\})
    на
    $1Категория|язык=$4$2$5
     
    Примечание остается в силе.

    Всего записей: 1377 | Зарегистр. 17-01-2011 | Отправлено: 20:35 05-02-2020 | Исправлено: Jonmey, 20:38 05-02-2020
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sikemo написал(а)
    Цитата:
    отмечу лишь еще, что код языка там не 2-3 символа, а моежт быть и simple, zh-min-nan, be-x-old.

    Найти
    Код:
    (\{\{categ(.*))(?<=\{\{categ)(.*)(?=\|lang=(.*)\}\})\|lang=(.*)\}\}
    заменить тоже самое.
    Проверил в Notepad++ работает, а AkelPad почему-то нет. Если будет время, то позже попробую глянуть почему в последнем не работает.
    Цитата:
    {{categ|Бук|Веди|Колеси и мечтыlang=be}}  

    Обратите внимание, что тут вы |Колеси и мечты[b]|[/b]lang=be}} вы вертикальный слеш пропустили.

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

    Всего записей: 7198 | Зарегистр. 20-03-2009 | Отправлено: 22:27 05-02-2020
    Jonmey

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

    Цитата:
    (\{\{categ(.*))(?<=\{\{categ)(.*)(?=\|lang=(.*)\}\})\|lang=(.*)\}\}

    Выделенные красным куски ничего не добавляют  в условия поиска в данном регэкспе (тупо дублируя уже имеющиеся условия), что лишь увеличивают число шагов в 5 раз (снижая общее быстродействие в такое же количество раз).
    Напр, на строке
    {{categ|Бук|Патык|Башлык|прочее|Ufh|doooom|lang=engl}}
    данный регэксп делает 340 шагов, тогда как, например, выражение
    (\{\{)[^|\n\r]+((\|[^|\n\r]+)){1,6}\|?lang=([^|\n\r}]+)(\}\})  
    делает всего 34 шага (то есть, на порядок быстрее).

    Всего записей: 1377 | Зарегистр. 17-01-2011 | Отправлено: 23:03 05-02-2020 | Исправлено: Jonmey, 23:16 05-02-2020
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Оптимизированный вариант. Найти

    Код:
    \{\{categ(.*)\|lang=(.*)\}\}

    заменить на

    Код:
    {{катег|язык=$2$1}}  

    Add, если пропущенный вертикальный слеш не был ошибкой, то найти

    Код:
    \{\{categ(.*)\|?lang=(.*)\}\}


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

    Всего записей: 7198 | Зарегистр. 20-03-2009 | Отправлено: 23:20 05-02-2020 | Исправлено: regist123, 23:28 05-02-2020
    Jonmey

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

    Цитата:
    \{\{categ(.*)\|?lang=(.*)\}\}

    71 шаг - уже лучше

    Всего записей: 1377 | Зарегистр. 17-01-2011 | Отправлено: 23:39 05-02-2020
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    regist123 написал(а)
    Цитата:
     а AkelPad почему-то нет. Если будет время, то позже попробую глянуть почему в последнем не работает.

    Похоже AkelPad вообще не очень корректно работает с регулярками (бага самого редактора). Вот пример явно некорректной работы.

    Всего записей: 7198 | Зарегистр. 20-03-2009 | Отправлено: 01:03 09-02-2020 | Исправлено: regist123, 01:03 09-02-2020
    Jonmey

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

    Цитата:
    Похоже AkelPad вообще не очень корректно работает с регулярками (бага самого редактора). Вот пример явно некорректной работы.

    Это нормальное поведение, а не ошибка.
    Дело в том, что выражение
    .* или .+
    является неопределенным выражением ( а потому опасным), поскольку не может быть однозначно трактовано, если не указаны конкретные условия - обработка концов строк, жадный-нежадный режим - имеется сильная зависимость от инструментов для этого выражения, а потому легко совершить ошибку (особенно актуально, для многошаговых, операций с большими документами или большим их числом - отследить (заметить) ошибку бывает сложно).
    При разборе html - это очень актуальная проблема.
    Поэтому, если есть возможность никогда не использую эти выражения.
    Кроме этого они априори - самый медленный вариант из возможных и как правило требуют backtracking при выполнении, что в иных случаях делает выполнение задач очень неторопливым.

    Всего записей: 1377 | Зарегистр. 17-01-2011 | Отправлено: 03:25 09-02-2020
    YuS_2



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

    Цитата:
    Похоже AkelPad вообще не очень корректно работает с регулярками (бага самого редактора).

    Нет там никакого бага.
    Настройка по умолчанию, для шаблона ".":

    Цитата:
    (?s) точка '.' соответствует любому одиночному символу (по умолчанию).
     

    а т.к. квантификаторы "+" и "*" являются "жадными", то, соответственно, получаете именно то, что записано в шаблоне...
    Если же требуется, чтобы точка не захватывала перевод строки, то надо снять птицу в форме со скриншота или в шаблоне указать опцию (?-s), последнее будет надежнее с точки зрения переносимости шаблона на другие экземпляры AkelPad.

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 08:13 09-02-2020 | Исправлено: YuS_2, 08:24 09-02-2020
    Jonmey

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

    Цитата:
    Если же требуется, чтобы точка не захватывала перевод строки, то надо снять птицу в форме со скриншота или в шаблоне указать опцию (?-s), последнее будет надежнее с точки зрения переносимости шаблона на другие экземпляры AkelPad.

    Когда выражение предназначено для работы в рамках одной строки  вместо .* или .+ надежнее  использовать  
    [^\n\r]* или [^\n\r]+
    Никогда не ошибешься с переключателями режима обработки конца строк. И переносимость будет лучше не только в рамках AkelPad, а любого редактора, поддерживающего регэкспы, независимо от того имеет он этот переключать и др. уточняющие настройки или нет.

    Всего записей: 1377 | Зарегистр. 17-01-2011 | Отправлено: 02:28 10-02-2020 | Исправлено: Jonmey, 02:31 10-02-2020
    YuS_2



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

    Цитата:
    Когда выражение предназначено для работы в рамках одной строки  вместо .* или .+ надежнее  использовать

    Ну, та моя сентенция была посвящена описанию отсутствия бага в регэкспах AkelPad для шаблона, который составлял не я. Сам же, я предпочитаю использовать именно [^\n]*, в подобных случаях...
    Вообще, точка в регэкспах - интересный шаблон (имеющий подводный камень), который может при использовании в "чистом" виде ".*" захватывать "ничего", причем как отдельную часть от всего сочетания символов и с первого взгляда - вызывает непонимание и стойкое ощущение наличия бага. Но это таки не баг, такое поведение описано и в общем случае, спецы рекомендуют обычно избегать использование такого шаблона.
    Пример (так работает не во всех движках, но во многих):

    Код:
    Что: .*
    Чем: 1

    На тексте "abc", выдаст результат "11" - вот такие вот регэкспы.
    Как-то так...

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 07:37 10-02-2020
    Jonmey

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

    Цитата:
    Ну, та моя сентенция была посвящена описанию отсутствия бага в регэкспах AkelPad для шаблона, который составлял не я.
    Вы давали совет, как сделать лучше. А он был не оптимален на мой взгляд, на что я и указал.
    Вы с этим не согласны?
     
    Добавлено:

    Цитата:
    Сам же, я предпочитаю использовать именно [^\n]*

    Опять же неоптимальное предпочтение, поскольку не учитывает варианта концов строк в системе МАС (кто знает, в какой системе редактировался документ и потом, нередки случаи смеси причем всех возможых типов). Печально если такая мелочь похоронит длительный труд по редактированию.
    Поэтому оптимальной заменой (в зависимости от того, от 0 или от одного вхождения отсчет) может служить, как и сказал выше
    Цитата:
    [^\n\r]* или [^\n\r]+

     
    Добавлено:

    Цитата:

    Код:
    Что: .*
    Чем: 1
      На тексте "abc", выдаст результат "11" - вот такие вот регэкспы.   Как-то так...  

    Мне не встречалось. Навскидку проверил два десятка синтаксисов - не встретил. Из общих соображений такое возможно, если после строки abc есть символ конца строки (тогда это нормальное поведение - результат обработки двух строк - потому и две единицы). Если же конец файла - то вряд ли такое возможно.
    А вообще конечно есть вещи, которые не стоит забывать. Например. бездумное использование \w может быть чревато (особенно при переименованиях файлов), поскольку этот оператор, кроме букв и цифр включает символ подчеркивания (_), и в то же время не включает дефис, который нередко встречается в словах, о чем многие забывают или не знают. Отсюда и моя ранее озвученная рекомендация для неопытных юзеров - писать регэкспы в максимально развернутом виде - шансы ошибок ниже.

    Всего записей: 1377 | Зарегистр. 17-01-2011 | Отправлено: 09:18 10-02-2020 | Исправлено: Jonmey, 10:10 10-02-2020
    YuS_2



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

    Цитата:
    Вы давали совет, как сделать лучше

    Заблуждение. Там было указание на отсутствие бага и совет как использовать точку с жадным квантификатором в AkelPad - остальное можно домысливать и додумывать... что непродуктивно абсолютно.
     

    Цитата:
    Вы с этим не согласны?

    Мое согласие или несогласие тут не имеет никакого значения.
     

    Цитата:
    Опять же неоптимальное предпочтение

    Помимо оптимальности, есть понятие достаточности. Для AkelPad - такой шаблон более чем достаточен. Макинтоши и прочие IBM - домысливание и додумывание. Никакой оптимальности.
     
    С остальным согласен.
     

    Цитата:
    Мне не встречалось. Навскидку проверил два десятка синтаксисов - не встретил.

    Если в тон высказывания, то: плохо искалось...
    На вскидку:

    Код:
    PCRE2 10.30-10.31
    C# (.Net 2.0-4.7.2 & .Net Core)
    Javascript (Chrome)
    Perl 5.26-5.28
    PHP preg 7.2.0-7.2.9
    Powershell
    Python 3.7
    VBScript
    Visual Basic 6

    В общем, воспользуйтесь возможностями RegexBuddy, он у Вас есть.
     

    Цитата:
    Из общих соображений такое возможно, если после строки abc есть символ конца строки (тогда это нормальное поведение - результат обработки двух строк - потому и две единицы). Если же конец файла - то вряд ли такое возможно.

    Никаких общих соображений. Захватывается самое начало текста, где присутствует "ничего" и это "ничего", как раз, становится дополнительной единицей. Никакого отношения конец строки к такому поведению не имеет. Текст состоит из трех символов и одной строки.
    Если шаблон написать так:

    Код:
    ^.*

    то никаких дополнительных символов уже не будет, т.к. сам шаблон уже не будет подразумевать "ничего", ибо как минимум: начало строки, за которым сразу же следует ноль или более любых символов (совпадение с "ничего" здесь никаким образом не может быть найдено), в отличие от: ноль или более любых символов (то бишь либо "ничего" - совпадение будет найдено, либо один и более символов - совпадение тоже будет найдено, что и дает две условных единицы).

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 20:32 10-02-2020
    Jonmey

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

    Цитата:
    Заблуждение.  

    Тогда повторим сначала. Ваше?

    Цитата:
    Если же требуется, чтобы точка не захватывала перевод строки, то надо снять  птицу в форме со скриншота или в шаблоне указать опцию (?-s), последнее будет надежнее с точки зрения переносимости шаблона на другие экземпляры AkelPad.

    "Надо [сделать и] будет надежнее"
    Это форма совета (как минимум) или рекомендации или указания, что не меняет смысла.
    То что вами озвучено, как "надо" - не является оптимальным вариантом в смысле надежности и универсальности (у вас это переносимость на др. экземпляры редактора).
    Я привел более оптимальный, который еще и универсальнее (не зависит от редактора). Далее - называя вещи своими именами - с вашей стороны следует попытка сделать хорошую мину при плохой игре. Было бы понятно, если бы речь шла о чем-то действительно серьезном - когда от этого зависел бы ваш авторитет (в том виде, как вы его себе представляете). Но в данном случае, речь идет о мелочах, которые полезны и правильны, но не влияют не портят ваш авторитет. Более того, просто согласившись со сказанным мною выше, вы его укрепите, поскольку юзеры слепо вам верящие, возьмут на вооружение эти приемы и будут в будущем иметь меньше проблем (что только упрочит ваш же авторитет, поскольку они будут помнить только ваше последнее слово). Вместо этого вы заняли позицию не мужа, но мальчика, когда в этом не было малейшей необходимости. Зачем?... Вы не со мной боритесь, а с ветряными мельницами.
    В силу разных причин - не являюсь, ни вашим конкурентом, ни кого бы то ни было.
    Более того, никогда бы не смог, столь длительно, упорно и широко помогать юзерам, как вы и некоторые другие участники. Больше, чем на эпизодики - меня не хватит - это довольно тяжкий труд и нужно ангельское терпение для этого. Я же - перекати-поле и в смысле интереса и в смысле усидчивости. Даже, якобы помогая кому-то, на самом деле это делаю для себя - то есть решаю задачку для себя, а тут лишь дополнительно ее публикую (нередко. последнее, просто лень делать, тем более есть всегда на кого положиться, вроде вас, и не терзаться сомнениями, что мог, но не помог...). На этой оптимистичной ноте, пожалуй, и закончу.  
     

    Цитата:
    Если в тон высказывания, то: плохо искалось...
    На вскидку:

    Код:
    PCRE2 10.30-10.31
    C# (.Net 2.0-4.7.2 & .Net Core)
    Javascript (Chrome)
    Perl 5.26-5.28
    PHP preg 7.2.0-7.2.9
    Powershell
    Python 3.7
    VBScript
    Visual Basic 6

    В общем, воспользуйтесь возможностями RegexBuddy, он у Вас есть.

    Да, тут согласен, проверял лишь на уровне отладки и не запускал собственно саму замену.
    Однако, проверив указанное выражение в программе, которая использует скрипты на C# (.net) такого же поведения не обнаружил. Запишу пока в загадки. А там будет видно.
    Но в любом случае это подтверждает мой изначальный тезис что

    Цитата:
    выражение  
    .* или .+  
    является неопределенным выражением ( а потому опасным), поскольку не может быть однозначно трактовано, если не указаны конкретные условия - обработка концов строк, жадный-нежадный режим - имеется сильная зависимость от инструментов для этого выражения, а потому легко совершить ошибку (особенно актуально, для многошаговых, операций с большими документами или большим их числом - отследить (заметить) ошибку бывает сложно).  
    При разборе html - это очень актуальная проблема.  
    Поэтому, если есть возможность никогда не использую эти выражения.  

    Всего записей: 1377 | Зарегистр. 17-01-2011 | Отправлено: 01:15 11-02-2020 | Исправлено: Jonmey, 01:51 11-02-2020
    YuS_2



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

    Цитата:
    "Надо [сделать и] будет надежнее"  
    Это форма совета (как минимум) или рекомендации или указания, что не меняет смысла.  
    То что вами озвучено, как "надо" - не является оптимальным вариантом в смысле надежности и универсальности (у вас это переносимость на др. экземпляры редактора).  

    Именно. Речь шла об AkelPad, остальное - казуистика. Никаких слов о полной универсальности не звучало.

    Цитата:
    Далее - называя вещи своими именами - с вашей стороны следует попытка сделать хорошую мину при плохой игре.

    Не передергивай. И не раздувай свой ЧСВ до размеров дирижабля и всё будет нормально.

    Цитата:
    Было бы понятно, если бы речь шла о чем-то действительно серьезном - когда от этого зависел бы ваш авторитет (в том виде, как вы его себе представляете). Но в данном случае, речь идет о мелочах, которые полезны и правильны, но не влияют не портят ваш авторитет.

    Меньше всего думаю о каком-то там авторитете... и как я его себе представляю? В смысле, тебе-то откуда это знать? Хочется об этом поговорить? Здесь этому не место, не флуди.  
    И хорош уже перходов на личности. Честно говоря, надоело уже видеть это с твоей стороны. Я говорю о шаблонах и регэкспах, даю рабочие и вменяемые рекомендации. Возможно, они тебе не нравятся, но вместо аргументов ты кидаешься оценивать мою личность - тебе это нравится? Но это правилами форума прямо запрещено, так что уймись. Обсуждай лучше вопросы топика.

    Цитата:
    Но в любом случае это подтверждает мой изначальный тезис что

    Его никто и не опровергал, только дополнил (как это любишь делать ты сам) и показал на примере почему точка, особенно с квантификатором "*" или "?" - не всегда оптимальный шаблон.

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

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

    Цитата:
    ...поскольку не учитывает варианта концов строк в системе МАС (кто знает, в какой системе редактировался документ и потом, нередки случаи смеси причем всех возможых типов).  

    и в чем сложность определения lf, cr и т.д.?
    YuS_2
    а вы не такой добрый как я

    Всего записей: 7753 | Зарегистр. 08-09-2001 | Отправлено: 18:46 11-02-2020
    YuS_2



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

    Цитата:
    и в чем сложность определения lf, cr и т.д.?

    сложностей, на самом деле нет. Просто многое зависит от того, как работают регэкспы в конкретном движке/редакторе.
    Например, в AkelPad шаблон "\n" будет захватывать и "\r"(0Dh) и "\n"(0Ah), поэтому нет никакой разницы в шаблонах [^\r\n]* и [^\n]*, в других движках они могут обрабатываться буквально, поэтому могут возникнуть грабли. То бишь документы могут иметь разные символы, обозначающие конец строки, это зависит как от редактора, так и от ОС...
    Исторически было принято:
    Dos/Windows - \r\n
    Unix - \n
    MacOS - \r
    Сейчас, в современных ОС, в основном используется \n, в том числе и в MacOS, но в Dos/Windows, все также \r\n
    Как-то так
     

    Цитата:
    вы не такой добрый как я

    может быть

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 20:42 11-02-2020
    los

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

    Цитата:
    сложностей, на самом деле нет....

    спасибо, но я в курсе. От того и был несколько удивлен, а вот этим в особенности:

    Цитата:
    нередки случаи смеси причем всех возможых типов

    Всего записей: 7753 | Зарегистр. 08-09-2001 | Отправлено: 22:36 11-02-2020
    Jonmey

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

    Цитата:
    Речь шла об AkelPad, остальное - казуистика.

    Тема посвещена регэкспам (заметьте - любым). Апеллировать к частной программе, оправдывая свой менее универсальный вариант - не умно.
    В остальном можете продолжать заниматься софистикой, если больше нечего сказать.

    Цитата:
    и в чем сложность определения lf, cr и т.д.?

    Ни в чем. Речь лишь была о том, что выражение
    [^\n]* или [^\n]+
    не учитывает конца строк в системе MAC (хотя причина. откуда они появились неважна - они элементарно могут наличествовать вследствие того, что изначально корректный документ редактировался умником, который использовал регэкспы под конкретный редактор, тупо перенеся их на другой; в некоторых редакторах \n - любой конец строки, но в большинстве - это конкретный символ, про \r забывают нередко и в результате элементарной замены (regexp)\n на \1 или $1 вы получите строки заканчивающиется на \r (то есть, MAC типа), которых изначально не было в документе и следующий рег эксп типа [^\n]* или [^\n]+ по определению будет неправильным в этом документе).
    Мой оппонет апеллировал к тому, что это неважно (в силу видимо собственного неостаточного опыта, иначе бы не тратил столько сил на оправдание своей позиции).
    В отличие от него, я сталкивался с ситуациями каши в типах концах строк. А когда цепочка состоит из десятков последовательно выполняемых регэкспов и/или групп шагов, да еще и на десятках, а то и сотнях тысячах файлов, подобные мелочи - суперкритичны.
    Кому наплевать - может не слушать меня. Я лишь предупредил.
    Но когда однажды, внезапно, обнаружите, что документ попорчен или большая работа пошла коту под хвост из-за такой мелочи - не говорите, что вас не предупреждали: грабли  - это ваше все.
    P.S. На этом ликбез по этому вопросу заканчиваю: вменяемые, но неопытные - поняли, вменяемые опытные - изанчально знали, что я прав (включая тех, которые испытывают неукротимые позывы бесцельно оппонировать). Судьба остальных - не представляет интереса.

    Всего записей: 1377 | Зарегистр. 17-01-2011 | Отправлено: 23:41 11-02-2020 | Исправлено: Jonmey, 00:04 12-02-2020
    YuS_2



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

    Цитата:
    Тема посвещена регэкспам (заметьте - любым).

    И что? Поэтому частные случаи обсуждать запрещено? Ну-ну.
     

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

    Признак отсутствия ума, это притягивание за уши общего к частному, всегда и во всем. Стремление всё универсализировать - это мания, которую лечить таки надо. Спустись со своего придуманного Олимпа и оглядись вокруг, мир не черно-белый...
     
    А с вменяемостью у тебя таки беда. Ещё раз: заканчивай обсуждать личностные характеристики. Опытный ты наш... флудер.

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 07:32 12-02-2020
    los

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jonmey,
    файлом со случаем " смеси причем всех возможых типов" не поделитесь?

    Всего записей: 7753 | Зарегистр. 08-09-2001 | Отправлено: 11:13 12-02-2020
    Открыть новую тему     Написать ответ в эту тему

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