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

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



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mavrikii
    Убрал. Я забыл, в прошлый раз же добавлял альтернативное продолжение совпадения. Добавил |.*html>
    Теперь до конца страницы все чисто, только призрак ссылка на какой-то альбом, которого нет или не видно.

    Всего записей: 384 | Зарегистр. 02-04-2011 | Отправлено: 11:05 20-11-2022
    masgak



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Привет. Подскажите пожалуйста почему не находит текст через пойск? Notepad++ v8.2
    Копирую содержимое в обычный блокнот, сразу все находит.

    Всего записей: 2885 | Зарегистр. 11-05-2005 | Отправлено: 10:53 25-11-2022
    Mavrikii

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

    Всего записей: 15431 | Зарегистр. 20-09-2014 | Отправлено: 11:01 25-11-2022
    masgak



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mavrikii
    Обычный текст на русском и английском.
    С темы Notepad++ сюда направляют
       
    Добавлено:
    Поставил v.8.4.7 заработал пойск.

    Всего записей: 2885 | Зарегистр. 11-05-2005 | Отправлено: 11:23 25-11-2022 | Исправлено: masgak, 11:28 25-11-2022
    Mavrikii

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

    Цитата:
    сюда направляют

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

    Всего записей: 15431 | Зарегистр. 20-09-2014 | Отправлено: 03:29 26-11-2022
    regist123



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

    masgak, Точней в топике часто спрашивают как найти xxx и можно ли автоматом это заменить на yyy.
    При этом не упоминая (а возможно и не зная), что их задачу надо решать с помощью регулярных выражений. Вот для них как раз в шапке подобное и добавлено.
    Только не смотря на эти вопрошатели по прежнему обычно спрашивают там и шапку не читают, а в вашем случае если это обычный поиск без каких либо ухищрений, то надо было спрашивать в теме Npp, что вы судя по всему и сделали, но потом затёрли сообщение прочитав шапку. И раз написали в этой, то стоило прочитать ещё шапку этой темы, а в частности leftMIND написал(а)
    Цитата:
    Рекомендации по составлению вопросов в данной теме: [?]

     


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

    Всего записей: 7198 | Зарегистр. 20-03-2009 | Отправлено: 11:41 26-11-2022
    Condar



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста как сделать замену в огромном тексте (12 млн строк) с помощью Notepad++
    строка выглядит вот так

    Код:
     0.1721+175  0.1297+174  0.2836+172  0.2110E+169  0.1207E+166  0.7232E+162

     
    Мне необходимо там где нету "E+" его туда поставить
     
    я пытался заменить "цифра+" на "E+" вот так  
    Найти [0-1][+]
    Заменить на E+
     
    Форумчане предложили
    Найти /d/+
    Заменить на E+  (может замена не правильная)
     
    Но оба варианта не работают в моем файле, меняет только в маленьком (до 1млн строк) файле, если файл как у меня 12млн строк, то NotaPad++ пишет (если исправлять надо в самом конце файла)

    Цитата:
    заменено 0 совпадений во всем файле.

    Всего записей: 1393 | Зарегистр. 27-01-2011 | Отправлено: 09:30 07-12-2022 | Исправлено: Condar, 09:37 07-12-2022
    Mavrikii

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

    Цитата:
    Найти /d/+

    а может, все же, \d\+ ?
    такая - правильная, и самая простая..

    Цитата:
    меняет только в маленьком (до 1млн строк) файле, если файл как у меня 12млн строк, то NotaPad++ пишет

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

    Всего записей: 15431 | Зарегистр. 20-09-2014 | Отправлено: 11:43 07-12-2022 | Исправлено: Mavrikii, 11:44 07-12-2022
    Condar



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mavrikii
    вы правы, это я не правильно написал, а поиск делал как вы и написали \d\+
    и ваше утверждение по особенностям NP++ наверное верное... буду другими методами замену делать...

    Всего записей: 1393 | Зарегистр. 27-01-2011 | Отправлено: 13:39 07-12-2022
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Condar
    есть такая вещь, как sed, с портами под Windows
    UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl;
    https://baks.dev/article/terminal/how-to-use-sed-to-find-and-replace-string-in-files

    Всего записей: 15431 | Зарегистр. 20-09-2014 | Отправлено: 22:51 07-12-2022
    Celsus



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Почему в результате происходит перенос строки?
    https://regex101.com/r/MeOefY/1
    Нужно чтобы было в одну строку: Awakening - Nikita
    Хотя если поменять местами $1  и $2 то работает.

    Всего записей: 384 | Зарегистр. 02-04-2011 | Отправлено: 10:02 21-12-2022 | Исправлено: Celsus, 10:07 21-12-2022
    bytie

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

    Код:
    ^(.*).*([^,]+,\s?)+(.*)$

    опции gm
    Ты захватываешь новые строки в регулярке

    Всего записей: 298 | Зарегистр. 18-08-2005 | Отправлено: 10:57 21-12-2022
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Celsus
    ^([^\n]+).*,\s([^\n]+)$

    Всего записей: 15431 | Зарегистр. 20-09-2014 | Отправлено: 22:07 21-12-2022 | Исправлено: Mavrikii, 01:06 22-12-2022
    los

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    есть файл с содержимым такого рода
    test/1test
    test / test2
    tesT/test
    Как с помощью регулярных выражений(BRE или ERE) добавить пробелы вокруг слэш там где их нет?

    Всего записей: 7648 | Зарегистр. 08-09-2001 | Отправлено: 17:03 26-12-2022
    Mavrikii

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

    Цитата:
    добавить пробелы вокруг слэш там где их нет?

    \s?\/\s? замена на " / " (без кавычек, просто показать пробел)
    https://regex101.com/r/WYWCDH/1

    Всего записей: 15431 | Зарегистр. 20-09-2014 | Отправлено: 22:24 26-12-2022 | Исправлено: Mavrikii, 22:26 26-12-2022
    los

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mavrikii, возможно, что-то делаю не так, но для PCRE работает, а для ERE и уж тем более для BRE нет.

    Всего записей: 7648 | Зарегистр. 08-09-2001 | Отправлено: 22:57 26-12-2022
    Mavrikii

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

    Цитата:
    а для ERE и уж тем более для BRE нет.

     

    Всего записей: 15431 | Зарегистр. 20-09-2014 | Отправлено: 23:01 26-12-2022
    los

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mavrikii, это только для gnu sed с использованием GNU extensions, запустите с ключом --posix и увидите разницу в результатах.
     


    Всего записей: 7648 | Зарегистр. 08-09-2001 | Отправлено: 23:21 26-12-2022 | Исправлено: los, 23:29 26-12-2022
    Mavrikii

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

    Цитата:
    и увидите разницу в результатах.

    просто же посмотреть в чем разница и перевести
     

    Всего записей: 15431 | Зарегистр. 20-09-2014 | Отправлено: 23:44 26-12-2022
    los

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

    Цитата:
    просто же посмотреть в чем разница и перевести  

    Видимо, для меня не так уж и просто
    $ echo test/test\\ntest / test | gsed --posix -E 's/\{0,1\}\/\{0,1\}/|/g'
    test/test
    test / test

    Всего записей: 7648 | Зарегистр. 08-09-2001 | Отправлено: 00:11 27-12-2022 | Исправлено: los, 00:12 27-12-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