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

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

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

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
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    los
    вы пробелов намеренно не замечаете? и перед \{0,1\} и вокруг | справа..
     
    gsed --posix -E 's/ \{0,1\}\/ \{0,1\}/ | /g'

    Всего записей: 14989 | Зарегистр. 20-09-2014 | Отправлено: 00:13 27-12-2022 | Исправлено: Mavrikii, 00:14 27-12-2022
    los

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

    Цитата:
    gsed --posix -E 's/ \{0,1\}\/ \{0,1\}/ | /g'

    Результат тот же.
     
    $ echo test/test\\ntest / test | gsed --posix -E 's/ \{0,1\}\/ \{0,1\}/ | /g'
    test/test
    test / test

     
     

    Всего записей: 7268 | Зарегистр. 08-09-2001 | Отправлено: 00:19 27-12-2022
    Mavrikii

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

    Цитата:
    # echo test/test\\ntest / test | sed --posix 's/ \{0,1\}\/ \{0,1\}/ | /g'
    test | test\ntest | test

    Всего записей: 14989 | Зарегистр. 20-09-2014 | Отправлено: 00:28 27-12-2022 | Исправлено: Mavrikii, 00:28 27-12-2022
    los

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

    Цитата:
    -E уберите

    тысяча извинений

    Всего записей: 7268 | Зарегистр. 08-09-2001 | Отправлено: 00:34 27-12-2022
    asku



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый вечер. Прошу подсказать.
     
    Есть текст, в котором есть слова с неправильным регистром, а именно примерно вот такие:
     
    Есть теКст, в котоРом есть слоВа с неПравильнЫм регистрОм, а имеНно примерно вот такиЕ
     
    Вопрос: как можно такие неправильные прописные буквы заменить на правильные строчные?
     
    Как найти такие буквы, я знаю. Видимо вот так:
    ([а-я])([А-Я])
    А дальше?

    Всего записей: 513 | Зарегистр. 04-05-2016 | Отправлено: 20:23 06-01-2023
    Mavrikii

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

    Цитата:
    А дальше?

    а дальше никак. зависит от используемых средств, так как само регулярное выражение так делать не умеет.
    многие приложения могут работать с заменой вида ([а-я])([А-Я]) на $1\L$2\E
    но это специфика конкретного
    https://stackoverflow.com/questions/1159343/convert-a-char-to-upper-case-using-regular-expressions-editpad-pro

    Всего записей: 14989 | Зарегистр. 20-09-2014 | Отправлено: 23:10 06-01-2023 | Исправлено: Mavrikii, 23:22 06-01-2023
    sikemo

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    не лучше ли в любом эдиторе EmEditor/Akelpad etc понизить регистр?

    Всего записей: 1326 | Зарегистр. 27-11-2008 | Отправлено: 22:44 08-01-2023
    asku



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sikemo а там это как делать? Мой текст будет внутри специализированной программы (собственно этот текст — OCR), и в рамках этой программы я предполагал средствами регулярных выражений произвести замену.

    Всего записей: 513 | Зарегистр. 04-05-2016 | Отправлено: 23:27 08-01-2023
    Mavrikii

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

    Всего записей: 14989 | Зарегистр. 20-09-2014 | Отправлено: 02:15 09-01-2023
    sikemo

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    akelpad Ctrl+5
    EmEditor Правка Преобразовать выделенное либо Ctrl [Shift] U

    Всего записей: 1326 | Зарегистр. 27-11-2008 | Отправлено: 16:26 12-01-2023
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Notepad++ ->Правка -> Преобразование регистра и выбираем нужное.
     

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

    Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 22:41 21-01-2023 | Исправлено: regist123, 22:42 21-01-2023
    Jonmey

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

    Цитата:
    (собственно этот текст — OCR)

    in other words, book, dictionary, big enough document. asku need some automatical way to solve that problem.
    Mavrikii told about one of them - using some text editors having support \L\U\E keys (for example EditPad, EditPlus and match more) but there could be one problem - text formatting saving (if it's having)
    In this case, using macros in the text processor as MS Word could be help.
    I think asku can manually to change letter register in simple text editors as he can writing some regexps.
     
    Добавлено:
    asku

    Цитата:
    Как найти такие буквы, я знаю. Видимо вот так:
    ([а-я])([А-Я])

    It's not so easy. What do you in this case?
     
    ЕСть ТЕКст, B КОТОРом Eсть СЛова ((БОрщ - Еда, а МОсква - город, IbM - компания, а isOxxxx - стандарт) С НЕправильнЫм регистрОм, A имеНно примерно ВОТ ТАкие.
     
    Try from the string above to make the string below using any regexes
     
    Есть текст, в котором есть слова (борщ - еда, а Москва - город, IBM - компания, а ISOxxxx - стандарт) с неправильным регистром, a именно примерно вот такие.

    Всего записей: 1294 | Зарегистр. 17-01-2011 | Отправлено: 21:09 22-01-2023 | Исправлено: Jonmey, 21:12 22-01-2023
    Death_INN

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    В Notepad++ есть фишка: Правка --- Отступы(Табуляция) --- Удалить табуляцию
    Как это реализовать через регулярное выражение в самом Notepad++?

    Всего записей: 2972 | Зарегистр. 24-10-2002 | Отправлено: 23:38 22-01-2023
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Death_INN
    замена ^\s+ на пустоту
    удалит и пробелы и табы.

    Всего записей: 14989 | Зарегистр. 20-09-2014 | Отправлено: 23:43 22-01-2023
    Death_INN

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mavrikii, я уже так пробовал. Не пашет, т.к. удаляет лишнее. В начале каждой строки должна удаляться только одна табуляция
     
    было
     
    [Tab]раз
    [Tab][Tab]два
    [Tab][Tab][Tab]три
     
    чтобы стало
     
    раз
    [Tab]два
    [Tab][Tab]три

    Всего записей: 2972 | Зарегистр. 24-10-2002 | Отправлено: 01:43 23-01-2023 | Исправлено: Death_INN, 01:50 23-01-2023
    Mavrikii

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

    Цитата:
    В начале каждой строки должна удаляться только одна табуляция

    ^\t замена на пустоту

    Всего записей: 14989 | Зарегистр. 20-09-2014 | Отправлено: 02:15 23-01-2023
    ewild

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Задача:
    найти и удалить пробел между <тегами>, но только в начальном текстовом массиве до тега <body>
    Примечание: текстовый массив может содержать произвольное число различных <тегов> (десятки) и может включать переводы строк (\n)  
    Среда:
    AkelPad
    Текущее решение:
    Найти: > <(.+)<body>
    Опции: Regular Expressions = On; . matches \n = On
    Заменить на:
    ><\1<body>
     
    В принципе работает, но заменяет "> <" на "><" только один раз, и требуется повторять поиск/заменту по числу "> <".
     
    Вопрос, можно ли сделать это за один проход?
     
    Спасибо.

    Всего записей: 1191 | Зарегистр. 13-08-2005 | Отправлено: 15:07 31-01-2023 | Исправлено: ewild, 15:29 31-01-2023
    Tilks

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ewild
    вопрос уже к блокноту вашему. обычно есть кнопка Заменить всё
    https://res.cloudinary.com/proz/image/upload/v1560597665/hick1lz1xdhx2gyv0c7q.png

    Всего записей: 2688 | Зарегистр. 14-08-2005 | Отправлено: 16:35 31-01-2023
    Jonmey

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

    Цитата:
    Задача:
    найти и удалить пробел между <тегами>, но только в начальном текстовом массиве до тега <body>
    Примечание: текстовый массив может содержать произвольное число различных <тегов> (десятки) и может включать переводы строк (\n)  
    Среда:
    AkelPad
    Текущее решение:
    Найти: > <(.+)<body>
    Опции: Regular Expressions = On; . matches \n = On
    Заменить на:
    ><\1<body>
     
    В принципе работает, но заменяет "> <" на "><" только один раз, и требуется повторять поиск/заменту по числу "> <".
     
    Вопрос, можно ли сделать это за один проход? 

    For example
    Найти: > +<(?=.*<body)
    Заменить на: ><
    Опции: Regular Expressions = On; . matches \n = On

    Всего записей: 1294 | Зарегистр. 17-01-2011 | Отправлено: 01:46 01-02-2023
    ewild

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

    Цитата:
    For example
    Найти: > +<(?=.*<body)
    Заменить на: ><
    Опции: Regular Expressions = On; . matches \n = On

     
    Jonmey
     
    Работает, спасибо.
     
    Окончательный вариант сделал пока таким:
    Найти: (?s)>[ \t\xa0]+<(?=.*<body>)
    Заменить на: ><
    Опции: Regular Expressions [On]
     
    Пояснения:
    (?s) чтобы избавиться от необходимости включения опции Regular Expressions [. matches \n = On]
    [ \t\xa0]+ кроме пробелов убирает также \t (табы) и \xa0 (неразрывные пробелы)
    <body> в моем случае наличие закрывающей скобки (>) важно

    Всего записей: 1191 | Зарегистр. 13-08-2005 | Отправлено: 11:01 01-02-2023
    Открыть новую тему     Написать ответ в эту тему

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

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


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru