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

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

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

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
    Aleksandr_N

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    regist123
    Я прочитал, но не сразу всё правильно понял и поторопился. Кажется всё работает как надо.

    Цитата:
    "/i"
    А куда именно прописать, перед искомым текстом не срабатывает.
     
    Добавлено:

    Цитата:
    А в моём больше шагов, но зато более всё прозрачно и легко корректируется даже неопытным в регулярках.

    С этим согласен.
    А предложенное уважаемым Jonmey просто не работает.

    Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 22:35 29-02-2020
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Aleksandr_N написал(а)
    Цитата:
    А куда именно прописать, перед искомым текстом не срабатывает.

    примерно так regex Expression(RegularExp.t_str(), regex_constants::icase);
    + справка по флагам.

    Всего записей: 6814 | Зарегистр. 20-03-2009 | Отправлено: 22:46 29-02-2020
    Aleksandr_N

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    regist123
    Дело оказалось не в регистре, выражение "\<tr style="display:none"\>(?=\<td class=drug\>\<a href=\w*\.htm\>\<b(?: class=b)?\>[^\r\n]*9[^\r\n]*\</a\>\</td\>)" ищет текст за текстом, тоесть находит "9" в "<i></i> <a href=fir_96.htm>LEK d.d.,  (Словения)</a></td></tr>"

    Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 22:57 29-02-2020
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Aleksandr_N написал(а)
    Цитата:
    выражение "\<tr style="display:none"\>(?=\<td class=drug\>\<a href=\w*\.htm\>\<b(?: class=b)?\>[^\r\n]*9[^\r\n]*\</a\>\</td\>)"  


    Цитата:
    ннаходит "9" в  

    А зачем вы обрезали мою регулярку? Моё выражение с поиском по 9 будет

    Код:
    \<tr style="display:none"\>(?=\<td class=drug\>\<a href=\w*\.htm\>\<b(?: class=b)?\>[^\r\n]*9[^\r\n]*</a>\</td\>\<td class=firm)

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    regist123
    Извиняюсь что обрезал, подумал что там где "<td class=firm colspan=2>" это не сработает. Причина опять-же была в другом, лишний тег в другой странице. Хотя и регистр по-моему влияет тоже. Я всётаки так и не понял куда именно "/i" поставить.
     
    Добавлено:
    Извиняюсь за назойливость, но правда, в регулярках не разбираюсь, а кому-то это просто.

    Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 23:18 29-02-2020
    Jonmey

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

    Цитата:
    Но к примеру ваш вариант  <tr style="display:none">(<td class=drug><a href=[^<>]*><b[^>]*>[^<>]*FLUO)   не найдёт строку  <tr style="display:none"><td class=drug><a href=doc_1.htm><b>5-ФТОРУРАЦИЛ-ЭБЕВЕ</b> (5-FLUOROURACIL-EBEWE)</a></td><td class=firm colspan=2><i></i> <a href=fir_206.htm>EBEWE PHARMA, GmbH.Nfg.KG (Австрия)</a></td></tr>  

    В таком случае ваш вариант не найдет ничего если в тегах будет более одного пробела. Пример с юзером аккурат выше. Не говоря о том, что админ сайта может завтра изменить один символ в скриптах формирующих страницу - это случается более чем часто) и юзер будет куковать снова.
     
    Изменять же мой регэксп элементарно, для любого неподготовленного юзера использовав универсальное [^<>]* и </b>, как возможный вариант ([^<>]*</b>)  
     
    <tr style="display:none">(<td class=drug><a href=[^<>]*><b[^>]*>[^<>]*(</b>[^<>]*)?FLUO)
     
    где красным отмечено то, что имеет отношение к регэкспам (операторы и др.)
    синим обозначено то, что является простыми текстовыми строками, как если бы они были вида 123 или ABC, то есть отношения к регэкспам они не имеют.  
     FLUO - это любая текстовая подстрока или регэксп или их комбинация, которые могут охватывать многие и многие варианты; в простейшем случае простое перечисление с использованием оператора ИЛИ:  (...|...) (лучше заключать в круглые скобки); напр., (a|b) - символ a или символ b; или напр., (АНТИ|БИО|ПЕННИ) - любая из подстрок АНТИ, БИО или ПЕННИ

     
    [^<>]* - любой набор символов не равных символам < или > включая вариант ее полного отсутствия (то есть подстрока может быть найдена, а может ее и не быть вообще)
    (</b>[^<>]*)? - строка, состоящая из (закрыающего тега (просто строка, не регэксп) </b> [с последующим "любой набор символов не равных символам < или > включая вариант ее полного отсутствия"]) - которая может встречаться 1 раз или 0 раз (отсутствовать)". Примеры строк которые удовлетворяют этому выражению '</b>', '</b>123', '</b>ABC DE', (ничего или отсутствие указанной подстроки). Примеры подстрок  НЕ удовлетворяющие данному регэкспу целиком (но удовлетворяющие частично (в этих строках регэксп найдет подстроку) '</b><abc>', '</b>cde</>', '</b>123>56 66'. Примеры строк в которых регэксп найдет только одно соответствие - '' (пустое множество или ничего) - '<i>123</i>', '<b>ABC', '<b x=y>CD EE', '<b/>ABC MLP'. В последнем случае, данный регэксп не будет фактически участвовать в конечном результате поиска, если он является частью более сложного регэкспа, как в примере выше, и результат поиска будет определяться остальными частями общего регэкспа. То есть смысл данного (регэкспа)? - если есть кусок подстроки удовлетворяющий ему (1 совпадение), то корректно его обработать , чтобы он был учтен при работе всего общего регекспа, а если такого куска нет (0 совпадений), то - не вмешиваться в работу.
    Операторы
    [...] - набор символов
    [^...] - набор символов, которых не должно быть
    () - выражение (любое, как текст, так и регэксп, их комбинации)  - требуется, в частности, чтобы найденными подстроками можно было оперировать, как переменными (\1 или $1) - у меня это вся подстрока после подстроки, которую надо изменить - <tr style="display:none">(...)
    ? - число найденных предыдущих выражений или символов 0 или 1 раз
    * - число найденных предыдущих выражений или символов 0 или более раз.
     
    Это все что нужно знать, чтобы понять предложенный мной регэксп и изменять тем же инструментарием по своему вкусу. И это я еще не говорил про совместимость - мой регэксп будет успешно работать даже в случаях, если редактор имеет лишь базовую (ограниченную) поддержку регэкспов - то есть это охватывает абсолютное большинство инструментов редактирования, которые имеют хоть какую-то поддержку регэкспов (что автоматически поможет даже самым неопытным избежать ошибок/проблем связанных с программой, которую они используют, а не их собственными ошибками). Ваши варианты не могут всем этим похвастаться.
     
    То есть, вы пытаетесь притянуть за уши оправдания неоптимальности предложенного вами решения.
    Если бы юзер руководствовался не политическими соображениями (нравится-ненравится), а здравым смыслом, то через час (от силы, два) времени и чтения хелпа по регэкспам, по предложенному мною пути составлял бы подобные регэкспы самостоятельно, ибо освоить 3-4 базовых оператора регэкспов может без исключения любой - (а только такие и использованы у меня преднамеренно), ничего ни у кого не выклянчивая. Но он предпочитает брать из кошерных, как ему кажется рук, и потому будет клянчить и в будущем, спотыкаясь на каждом новом (внезапном) символе (как в изначальном случае его текущей проблемы). Ну а разумеется вам это приятно.
    Мне же приятно, когда любой юзер чему-то учится и самообучается, понимая, что ему предлагают, а не занимается тупой копипастой, как попка.

    Всего записей: 1173 | Зарегистр. 17-01-2011 | Отправлено: 23:21 29-02-2020 | Исправлено: Jonmey, 01:22 01-03-2020
    Aleksandr_N

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    regist123
    Вроде-бы попробовал, всё работает на первый взгляд корректно. На моём тестовом примере, хотя в Notepad++ пишет текст не найден. Странно... Но не в этом главное.
    Подскажи куда именно "/i" поставить чтобы регистр не учитывался. Странно, в коде RAD Studio регистр не учитывается если не поставить флаг, а флаг не стоит. Справку кратко почитал, но всё равно не понял. И тогда задача №1 будет решена.
    Jonmey

    Цитата:
    Мне же приятно, когда любой юзер чему-то учится и самообучается

    Это правильно, но мне давно не 20 лет чтобы потратить пару месяцев на изучение ради всего лишь одной строки. Мне достаточно моих знаний в других областях. Мир не без добрых людей, которые дадут рыбу вместо того чтобы учить как правильно рыбу ловить пока юзер не издохнет. ИМХО Уж извиняюсь если кого обидел.

    Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 00:47 01-03-2020 | Исправлено: Aleksandr_N, 01:42 01-03-2020
    Jonmey

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

    Цитата:
    мне давно не 20 лет чтобы потратить пару месяцев

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

    Иное - лень и блажь, поскольку вас не программы писать заставляют с нуля, а прочитать пару страниц хелпов и примеров. А из личного опыта, например английский начал изучать с абсолютно круглого нуля в сорок лет. А это посложнее каких-то там несчастных регэкспов, с которыми вы пыжитесь уже далеко не первый (!!!!) годочек, все ноя и ноя. Извиняюсь, если обидел чью-то гордость.

    Всего записей: 1173 | Зарегистр. 17-01-2011 | Отправлено: 01:32 01-03-2020 | Исправлено: Jonmey, 01:43 01-03-2020
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Aleksandr_N написал(а)
    Цитата:
    хотя в Notepad++ пишет текст не найден.

    Я про это писал тут второй вариант регулярки для него и тут про то что надо экранирование у угловых скобок убирать. Итоговая регулярка по сути не изменилась (только ?: внутрь добавилось), так что можете убрать экранирование и взять второй вариант регулярки с того поста и тестировать в Notepad++.  
     

    Цитата:
    Подскажи куда именно "/i" поставить чтобы регистр не учитывался. Справку кратко почитал, но всё равно не понял.

    Примерно так:

    Код:
    UnicodeString RegularExp = String("\<tr style="display:none"\>(?=\<td class=drug\>\<a href=\w*\.htm\>\<b(?: class=b)?\>[^\r\n]*") + stringVar +"[^\r\n]*</a>\</td\>\<td class=firm)";
     
    cmatch what;
    regex Expression(RegularExp.t_str(), regex_constants::icase);
       if(regex_search(SearchString.t_str(), what, Expression))

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

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



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

    Всего записей: 6814 | Зарегистр. 20-03-2009 | Отправлено: 12:24 01-03-2020
    Aleksandr_N

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    regist123
    Я понял. Подумал что "/i" ставится в само выражение. Код на Паскаль давно уже есть и всё работает. С регистром разобрался, косяк был в исходниках.
    И как я говорил есть задача №2.
    Поиск должен быть как в любой части слова, так и только с начала. Тоесть если искать "и" в любой части слова, то найдётся "иванов" и "ливанов", а если только в начале слова, то только "иванов".
    Ранее мне предлагали поставить "\bи". В Notepad++ это работает, а вот в RAD Studio не хочет. Есть ли ещё способ указать что поиск только в начале слова?
     
    Добавлено:
    Тоесть по факту это должно так вот работать:

    Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 13:30 01-03-2020 | Исправлено: Aleksandr_N, 17:11 01-03-2020
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Aleksandr_N
    Если поиск в начале, то это только в начале русского названия лекарства? И чем на Ивановых тренироваться, лучше сразу покажите реальную строку с лекарством и в какой части строки там должен быть поиск.
     
    А также если у вас есть работающая (устраивающая вас) регулярка для Notepad++ то её тоже покажите.
    Add.
    Или вы подразумеваете использование такого варианта?

    Код:
    <tr style="display:none">(?=<td class=drug><a href=\w*\.htm><b(?: class=b)?>[^\r\n]*\bАМО[^\r\n]*</a></td><td class=firm)

    В теории это и в Билдере должно работать. Если у вас не работает, то может с экранированием надо разбираться. Попробуйте там слеш удвоить... или лучше в теме билдера спросите.
    PS. Надеюсь учитываете, что в данном поcте выше регулярка совсем без экранирования, для того чтобы работала в Npp. А для билдера в теории должен работать вариант

    Код:
    \<tr style="display:none"\>(?=\<td class=drug\>\<a href=\w*\.htm\>\<b(?: class=b)?\>[^\r\n]*\\bА[^\r\n]*</a>\</td\>\<td class=firm)

    PPS. Либо чем спрашивать более полезный для вас вариант. Берете и сами проверяете, как у вас отработает. То есть вставляете регулярку:
    \bи - не нашло Иванов?  
    Пробуете \\bи и т.д. То есть регулярка всего из двух элементов "\b" и "и". Заодно и сами разберётесь как это всё работает.

    Всего записей: 6814 | Зарегистр. 20-03-2009 | Отправлено: 17:19 01-03-2020 | Исправлено: regist123, 17:54 01-03-2020
    Aleksandr_N

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    regist123
    Ну хорошо, можно и не Ивановых. Выше в картинке указан конкретный пример поиска "ана", находится или "АНАльгин" или "бетАНАз".
    Чтобы не использовать сторонние программы сделал тестовый пример на основе этих строк.
    https://cloud.mail.ru/public/3sq5/3xKu3gLzb
    Понимаю, что "\b" и на Билдере почему-то не работает и "\\b" поэтому и спросил есть ли ещё способ.

    Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 19:07 01-03-2020
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Aleksandr_N написал(а)
    Цитата:
    Понимаю, что "\b" и на Билдере почему-то не работает и "\\b" поэтому и спросил есть ли ещё способ.

    Регулярка рабочая. На билдере тоже должна работать. Как минимум должно работать '\b'. Если у вас не работает, значит вы что-то не так делаете. Как частный случай читаем справку по билдеру какие символы там надо экранировать. К теме ругулярок это отношения совсем не имеет. Поэтому выше уже писал, что возьмите повозитесь немного и разберитесь почему у вас не работает. Ну, либо если лень разбираться самому, то пойдите и спросите в теме билдера.

    Всего записей: 6814 | Зарегистр. 20-03-2009 | Отправлено: 20:19 01-03-2020
    Aleksandr_N

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    regist123
    Да там не правильно нечего сделать. Только родной модуль который просто передаёт регулярку в модули PCRE и возвращает результат. Тоесть насколько я понял только "\b" указывает на начало строки?

    Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 21:09 01-03-2020
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Aleksandr_N написал(а)
    Цитата:
    "\b" указывает на начало строки?

    Справку по регуляркам откройте (в шапке есть ссылки) и посмотрите, что этот символ означает.

    Цитата:
    Да там не правильно нечего сделать.

    Вариант №1 написал выше - вы не экранировали слеш.
    Вариант №2 используемая вами компонента не поддерживает какие-то рег-выражения.
    и т.д.
    Но только уже несколько раз написал, что это всё не имеет отношение к теме регулярок.
    И если вам элементарно лень прочитать и проверить в разных вариантах работу регулярки из одного символа, то мне тем более лень разбираться почему у вас не работает.
     
    Добавлено:
    Я могу понять, когда не получается разобраться со сложным/длинным регулярным выражением. Но когда надо просто взять один символ описанный в справке и проверь его работу или работу аналогичных ему символов... тут максимум 10 минут надо, чтобы перебрать во всех вариантах и найти рабочий (с учётом времени на компиляция программы). Дольше наверно тут на форуме писать и ждать ответа.
    Так что поддержу Jonmey, что иначе как ленью это не назвать.

    Всего записей: 6814 | Зарегистр. 20-03-2009 | Отправлено: 22:35 01-03-2020
    Aleksandr_N

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    regist123
    Читал внимательно, посчитал что это именно тема регулярок. И проверял работу и пробовал варианты.
    В общем основная работа сделана, а с остальными мелочами или разберусь или обойдусь без них.
    Спасибо уважаемый за помощь.

    Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 22:50 01-03-2020
    Aleksandr N

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    regist123
    Разобрался и с регистром и "\b". Как всегда не корректная Студии с кириллицей.
    Добавлю. То что я тут спросил и тупо ждал ответа на вопрос лёжа на диване, в корне не верно. Тоже проводил эксперименты. Но отсутствие знаний в этой теме...
    В общем спасибо за помощь уважаемый.

    Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 15:34 02-03-2020 | Исправлено: Aleksandr N, 15:54 02-03-2020
    gerxer

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

    Цитата:
    gerxer  
     
    Цитата:
    Пишет 3F3F6465756B2D &#8204;&#8204;??deuk-
    Кто пишет? Куда пишет? Зачем и почему он это делает?  
     
    Данные, которые вы копируете из GD нужно напрямую вставлять в шестнадцатеричный редактор (напр., в WinHex; сочетание Shift-Ins), без промежуточных копипаст в другие редакторы, которые превращают неизвестные/неинтерпретируемые ими символы в знаки обычного вопроса (3Fh) и вернуть им первоначальное значение уже невозможно. Тогда как ваша программа для работы с буфером обмена оперируетс сырыми (неизмененными любыми посредниками) бинарными данными. Чтобы написать корректный регэксп для этой программы нужно посмотреть именно на эти сырые (raw) данные, для чего и нужен шестнадцатеричный редактор.

     
    А можно подробнее, какую кодировку выбирать после Shift-Ins, и что там смотреть?  

    Всего записей: 551 | Зарегистр. 19-06-2014 | Отправлено: 21:30 02-03-2020
    Jonmey

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

    Цитата:
    А можно подробнее, какую кодировку выбирать после Shift-Ins, и что там смотреть?

    По умолчанию, ANSI-ASCII, надо полагать. Вам нужно увидеть hex коды (байты) символов, которые вызывают проблемы (так понимаю, это первые два байта).
    Можете попробовать и Unicode (я не знаю, в какой кодировке у вас буфер). Поэтому попробуйте оба варианта вставки. Если разница между ними лишь в наличии дополнительных нечетных нулевых байтов (00h), то правильная кодировка при вставке  ANSI-ASCII; если не все нечетные байты нулевые - то Unicode.
    Установление кодировки важно именно в контексте корректного определения кодов проблемных байтов. Корректность отображения остального содержимого в данном случае неважно.

    Всего записей: 1173 | Зарегистр. 17-01-2011 | Отправлено: 22:05 02-03-2020 | Исправлено: Jonmey, 22:10 02-03-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

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


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru