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

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



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

    Цитата:
    Единственный минус этого макроса — регулярные выражения можно использовать только в стоке поиска (но не в строке замены).

    А я понял, что рег.выр. это движок поиска, а движок замены организуется автором программы, в которую добавлен движок рег.выр. Если в AutoIt3 это из коробки, в JavaScript есть метод позволяющий манипулировать найденным, то в PureBasic нужно писать анализатор поиска ссылок (\1, \2 и т.д.) в строке замены и подставлять на их место найденные группы. То есть это не из коробки предоставляемый движком PCRE или другим каким.
     
    Fafy
    Так как понимаю что нет волшебных прог, всегда в разных прогах разный функционал. То и советую не пытаться искать в Word всё волшебство. Можно скопировать текст в один из текстовых редакторов, например AkelPad, обработать регулярными выражениями для выявления ошибок и прочего, а уж потом искать их в Word.
    http://forum.ru-board.com/topic.cgi?forum=5&topic=49364&start=1040#2

    Всего записей: 4404 | Зарегистр. 03-05-2006 | Отправлено: 09:43 29-04-2023 | Исправлено: AZJIO, 10:00 29-04-2023
    sikemo

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

    Цитата:
    А не подскажете хороший обучающий видеокурс по регулярным выражениям как для чайников.


    Цитата:
    видеокурсов как таковых наверно нет

    ну чё ж, например  
    [ DevCourseWeb.com ] Udemy - Complete Practical Regular Expressions (Regex) 2022 1.31 Gb
    не смотрел пока, но сидю

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



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток всем.
    Такой вопрос возник.
    Допустим, мне нужно заменить букву ё на ъ, а букву Ё на Ъ.
     
    Можно ли это сделать одним проходом?

    Всего записей: 517 | Зарегистр. 04-05-2016 | Отправлено: 00:42 02-05-2023
    Mavrikii

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

    Цитата:
    Можно ли это сделать одним проходом?

    в общем случае - нет.

    Всего записей: 15024 | Зарегистр. 20-09-2014 | Отправлено: 00:50 02-05-2023
    asku



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mavrikii
     
    А не общий случай это что значит? С помощью программирования? Или есть некоторые (какие?) реализации регулярных выражений, где такая возможность предусмотрена?

    Всего записей: 517 | Зарегистр. 04-05-2016 | Отправлено: 00:55 02-05-2023
    Mavrikii

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

    Цитата:
    С помощью программирования?  

    да, различные реализации языков программирования.

    Всего записей: 15024 | Зарегистр. 20-09-2014 | Отправлено: 01:07 02-05-2023
    qw12



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    asku
    Для работы с регулярными выражениями, лучше использовать LibreOffice.
    Там поддерживается очень широкий выбор, и поставленная задача решается элементарно в ОДИН проход:
       
     
    Добавлено:

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

    В пайтоне, если не ошибся, за ОДИН проход:

    Код:
    import re
    with open('do_zameni.txt', 'r') as input_file, open('posle zameni.txt', 'w') as output_file:
        input_string = input_file.read()
        new_string = re.sub("ё|ъ", lambda match: "2" if match. Group() == "Ё" else "Ъ", input_string)
        output_file.write(new_string)

     
    Добавлено:
    asku
    Если я правильно конечно понял, и вам нужно редактировать текст в Ворде. А если нет, то есть множество редакторов, которые позволяют решать подобные задачи.

    Всего записей: 601 | Зарегистр. 04-06-2001 | Отправлено: 10:25 02-05-2023
    asku



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    qw12
    В данном случае мне как раз нужно это для OpenOffice/Libreoffice.
    А на скрине это верное выражение?
    Найти:
    ё|ъ
    Заменить на:
    Ё/Ъ
    Просто сейчас не за компом, не могу проверить.
    А если замен больше двух? Скажем надо ещё дж поменять на дз.

    Всего записей: 517 | Зарегистр. 04-05-2016 | Отправлено: 10:54 02-05-2023
    Jonmey

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

    Цитата:
    Можно ли это сделать одним проходом?

       
    PowerGrep
    As example, action 'Replace cyrillic letters to similar latin letters' (was used for batch correction movie subtitles)
    18 step replacement with any number of files for one click . There is need ~5 min for the action creating.
     

    Всего записей: 1305 | Зарегистр. 17-01-2011 | Отправлено: 11:19 02-05-2023
    asku



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jonmey
    Спасибо, буду знать! Значит в плане поиска и замены PowerGrep лучше, чем NotePade++ ?
     
    Но в данном случае мне нужно для OpenOffice/Libreoffice.

    Всего записей: 517 | Зарегистр. 04-05-2016 | Отправлено: 11:44 02-05-2023
    asku



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день. Прошу помочь с составлением регулярного выражения.
     
    Допустим, есть текст, в котором периодически встречаются фамилии на -ов, причем они идут так:
    1) одна фамилия на одной строке (и ничего другого кроме нее в строке нет)
    2) в разных падежах
    3) в разном порядке (то есть необязательно, чтобы сначала шла фамилия в именительном падеже).
    4) совсем необязательно, чтобы одна фамилия была во всех падежах, это могут быть, к примеру, только родительный и творительный падеж.
     
    Для наглядности примерный текст:
     
     
    товар
    серпантин
    серпантином
    Иванова
    Иванов
    Иванову
    Ивановым
    Иванове
    человек
    красный
    мягкий
    Петровой
    Петрове
    Петров
    Петровых
    Вашингтонский
    Вашингтону
    телефонировать

     
    Как можно с помощью регулярных выражений захватывать все строки с одной фамилией?

    То есть в данном примере, регулярка бы нашла:
     
    Иванова
    Иванов
    Иванову
    Ивановым
    Иванове

     
    и
     
    Петровой
    Петрове
    Петров
    Петровых

     
    Начал я с такого выражения:
     
    ([А-Я]\w+)(у|а|ым|е|ом|ых|ой|ою|ыми)*\r?\n
     
    Но, во-первых, оно захватывает в приведенном примере и „Вашингтонский“ и «Вашингтону». А во-вторых, а что дальше?
    Это вообще только лишь средствами регулярных выражений возможно?

    Всего записей: 517 | Зарегистр. 04-05-2016 | Отправлено: 13:15 16-05-2023
    Mavrikii

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

    Цитата:
    Это вообще только лишь средствами регулярных выражений возможно?

    это не задача регулярок, подобный анализ.

    Всего записей: 15024 | Зарегистр. 20-09-2014 | Отправлено: 16:14 16-05-2023
    asku



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mavrikii, а как вообще понять — вот это регулярки могут сделать, а это нет?
     
    Вот текст:
     
    товар
    серпантин
    серпантином
    Иванова
    Иванов
    Иванову
    Ивановым
    Иванове
    человек
    красный
    мягкий
    Петровой
    Петрове
    Петров
    Петровы
    Петровыми
    Петровых
    Вашингтонский
    Вашингтону
    телефонировать

     
    Вот регулярное выражение:
     
    (([А-Я]\w+)(у|а|ым|е|ом|ых|ой|ою|ыми)*\r?\n\2(у|а|ым|е|ом|ых|ой|ою|ыми)*\r?\n)+
     
    Ищу я в NotePade++
     
    Эта регулярка находит:
     
    товар
    серпантин
    серпантином
    Иванова
    Иванов
    Иванову
    Ивановым

    Иванове
    человек
    красный
    мягкий
    Петровой
    Петрове

    Петров
    Петровы
    Петровыми

    Петровых
    Вашингтонский
    Вашингтону
    телефонировать

     
    Кто может подсказать, почему она других «Ивановых» и «Петровых» не захватывает ?

    Всего записей: 517 | Зарегистр. 04-05-2016 | Отправлено: 13:15 17-05-2023 | Исправлено: asku, 13:16 17-05-2023
    Mavrikii

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

    Цитата:
    а как вообще понять — вот это регулярки могут сделать, а это нет?

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

    Цитата:
    Кто может подсказать, почему она других «Ивановых» и «Петровых» не захватывает  

    потому что ваша регулярка работает только с четным количеством строк.

    Всего записей: 15024 | Зарегистр. 20-09-2014 | Отправлено: 16:25 17-05-2023
    niko7

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите с регулярным выражением, нужно проверять чтобы слово было длинной не меньше двух символов, состояло из знаков '- букв, но не начиналось с ' и не заканчивалось '. Пробовал так: [A-Z-a-z']{2,}.
    Так должно работать:
    n'a Истина  
    John Истина
    'na'me Ложь
    John' Ложь
    Как сделать ограничение на начало и конец слова с '?

    Всего записей: 2414 | Зарегистр. 23-09-2004 | Отправлено: 17:14 18-05-2023 | Исправлено: niko7, 18:08 18-05-2023
    Jonmey

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

    Цитата:
    Помогите с регулярным выражением, нужно проверять чтобы слово было длинной не меньше двух символов, состояло из знаков '- букв, но не начиналось с ' и не заканчивалось '. Пробовал так: [A-Z-a-z']{2,}.
    Так должно работать:
    n'a Истина  
    John Истина
    'na'me Ложь
    John' Ложь
    Как сделать ограничение на начало и конец слова с '?

    For example
    (?<=\s)[A-z][A-z']*[A-z](?=\s)

    Всего записей: 1305 | Зарегистр. 17-01-2011 | Отправлено: 20:57 18-05-2023 | Исправлено: Jonmey, 20:58 18-05-2023
    sikemo

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

    Цитата:
    asku

     
     
    (?-i)\w+ов(.+)?
    проверка прописной и -ов, плюс всё остальное. И вам не нужны окончание[я], а НУЖНОЕ какое-то крепкое условие

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



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sikemo, спасибо. Кажется получилось:
     
    (([А-Я]\w+ов)(\w){0,3}\r?\n)(\2(\w){0,3}\r?\n){0,}
     
    товар
    серпантин
    серпантином
    Иванова
    Иванов
    Иванову
    Ивановым
    Иванове

    человек
    красный
    мягкий
    Петровой
    Петрове
    Петров
    Петровы
    Петровыми
    Петровых

    Вашингтонский
    Вашингтону
    телефонировать
    Шавлоховыми
    Шавлохов

    Демушкин
    Петров
    Сергеев
    Цоков
    Цоковых
    Цоковым

    монитор
    обсерватория
    иванов
    иванову
    статья

    Всего записей: 517 | Зарегистр. 04-05-2016 | Отправлено: 23:06 18-05-2023
    sikemo

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    а как оно вам выловило
    Цитата:
    Шавлоховыми
    если вы ов -ов ограничились 3 симолами?
    (([А-Я]\w+ов)(\w){0,3}

    Всего записей: 1326 | Зарегистр. 27-11-2008 | Отправлено: 10:29 19-05-2023
    asku



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sikemo , после -ов же допустимы три символа.
    Шавлоховыми (ыми это три символа)

    Всего записей: 517 | Зарегистр. 04-05-2016 | Отправлено: 10:57 19-05-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