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

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

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Werty666
    задача решаема стандартными средствами на nix системах. Наверное, проще всего при помощи awk типа:
    $ awk '{key=$0; getline; print key " - " $0;}' file
    или sed, paste и т.д.
    загляните сюда UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl;
    наверняка подскажут какое-нибудь изящное решение.

    Всего записей: 7653 | Зарегистр. 08-09-2001 | Отправлено: 13:27 13-09-2020
    Werty666



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    los  я на win10, освоить линуксы всякие окоянные, чтобы в notepad++ строки поменять???

    Всего записей: 370 | Зарегистр. 20-07-2008 | Отправлено: 14:02 13-09-2020
    los

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

    Всего записей: 7653 | Зарегистр. 08-09-2001 | Отправлено: 14:08 13-09-2020
    YuS 2



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

    Цитата:
    я на win10

    ну тогда и регэкспы, и np++  не нужны...
    powershell

    Код:
    gc test.txt -r 2 -enc utf8|%{$_[1]+' - '+$_[0]}|out-file out.txt -enc utf8


    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 14:44 13-09-2020
    Werty666



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

    Цитата:
    gc test.txt -r 2 -enc utf8|%{$_[1]+' - '+$_[0]}|out-file out.txt -enc utf8  

     
    я никогда не пользовался powershell  - первое использование и у меня глаза на лоб выкатились - одна строка и все! Дружище, дай ссылку где рационально поизучать такие способы для текстовых файлов, без гуглопоиска

    Всего записей: 370 | Зарегистр. 20-07-2008 | Отправлено: 16:04 13-09-2020
    YuS 2



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

    Цитата:
    дай ссылку где рационально поизучать такие способы для текстовых файлов, без гуглопоиска

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

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 18:57 13-09-2020
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Werty666
    замена в np++
    (.+)\r?\n(.+)  => $2 - $1

    Всего записей: 15440 | Зарегистр. 20-09-2014 | Отправлено: 21:26 13-09-2020 | Исправлено: Mavrikii, 21:27 13-09-2020
    Werty666



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuS 2 спасибо!
     
    Mavrikii работает! Вопросительный знак сотворил чудеса)) тоже спасибо, возьму в коллекшэн
     

    Всего записей: 370 | Зарегистр. 20-07-2008 | Отправлено: 18:53 14-09-2020 | Исправлено: Werty666, 19:13 14-09-2020
    KiloSub



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Что-то туплю. Подскажите, пожалуйста, np++, нужно удалить все строки, начинающиеся НЕ на "%R_e_g%"

    Всего записей: 420 | Зарегистр. 30-05-2020 | Отправлено: 22:01 23-11-2020 | Исправлено: KiloSub, 22:12 23-11-2020
    Romul81



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

    Код:
    ^(?!%R_e_g%)[^\r\n]*\r?\n

    Всего записей: 1329 | Зарегистр. 03-03-2008 | Отправлено: 22:41 24-11-2020
    KiloSub



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Romul81, да, спасибо, разобрался. Сам часто использую (?=...), а про НЕ совпадение ?! забыл.

    Всего записей: 420 | Зарегистр. 30-05-2020 | Отправлено: 06:30 25-11-2020
    bk99



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

    Код:
    <trk>
      <name>трек</name>
      <trkseg>
        <trkpt lat="34.319247954" lon="52.037100668">
          <time>2020-11-25T06:28:26.921Z</time>
        </trkpt>
        <trkpt lat="34.31781" lon="52.03929">
          <time>2020-11-25T06:29:54.921Z</time>
        </trkpt>
        <trkpt lat="34.31596" lon="52.03745">
          <time>2020-11-25T06:31:22.921Z</time>
        </trkpt>
        <trkpt lat="34.315668719" lon="52.037698335">
          <time>2020-11-25T06:32:50.921Z</time>
        </trkpt>
      </trkseg>
    </trk>

     
    В notepad++ вручную правлю его до удобочитаемого состояния:
     

    Код:
    <trk><name>трек</name>
      <trkseg>
        <trkpt lat="34.31925" lon="52.03710"></trkpt>
        <trkpt lat="34.31781" lon="52.03929"></trkpt>
        <trkpt lat="34.31596" lon="52.03745"></trkpt>
        <trkpt lat="34.31567" lon="52.03770"></trkpt>
      </trkseg>
    </trk>

     
    т.е.
    - удаляю строки с тегами <time>бла-бла-бла</time>;
    - подтягиваю <name>бла-бла-бла</name> и </trkpt> на строчку выше;
    - округляю циферки до пятого знака после запятой.
     
    Пожалуйста, подскажите, каким образом можно автоматизировать эту рутину хотя бы частично? Сомневаюсь, что можно автоматизировать округление, но удалять теги-то можно?
    Сам я ну очень далёк от этого всего.
    Спасибо.

    Всего записей: 947 | Зарегистр. 27-12-2005 | Отправлено: 09:05 26-11-2020
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bk99
    https://jsfiddle.net/ty584eqr/
    без регулярок, вставляете текст, жмете кнопку сконвертить.

    Всего записей: 15440 | Зарегистр. 20-09-2014 | Отправлено: 09:23 26-11-2020 | Исправлено: Mavrikii, 09:29 26-11-2020
    bk99



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

    Цитата:
    без регулярок, вставляете текст, жмете кнопку сконвертить

    Прошу извинить мою некомпетентность в таких вещах, но у меня не получилось. По-видимому, там надо ещё минимально код править.
     
    И, всё-таки, мне хотелось бы, если это, конечно, возможно, сделать это посредством notepad++ и регулярок.

    Всего записей: 947 | Зарегистр. 27-12-2005 | Отправлено: 10:00 26-11-2020
    Mavrikii

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

    Цитата:
    По-видимому, там надо ещё минимально код править.

    ничего там править не нужно. справа вставить в поле, над ним нажать кнопку, скопировать обратно - что сложного то?
       
     

    Всего записей: 15440 | Зарегистр. 20-09-2014 | Отправлено: 10:33 26-11-2020 | Исправлено: Mavrikii, 10:35 26-11-2020
    bk99



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

    Цитата:
    что сложного то?

    Вау! Действительно работает твоё колдунство!
    Большое спасибо!
     
    Я, по недоумию, вставлял свой код в поле <textarea></textarea> секции HTML (только не спрашивай "ЗАЧЕМ!!") и получал на выхлопе:
     
    <trk><name></name>
      <trkseg>
      </trkseg>
    </trk>
     
    Вопросы.
    1. Можно ли эту замечательную машинку в каком-либо виде сохранить себе, чтобы можно было действовать офлайн?
    2. Если мне понадобится удалять строки с тегами,  скажем, <sum>...</sum> (а не <time>...</time>), то эта штука тоже сработает?

    Всего записей: 947 | Зарегистр. 27-12-2005 | Отправлено: 11:29 26-11-2020
    Mavrikii

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

    Цитата:
    Можно ли эту замечательную машинку в каком-либо виде сохранить себе, чтобы можно было действовать офлайн?

    Да, простая html страница с подключенной jquery библиотекой. Я сейчас с таблета поэтому не напишу. Могу позже, если не забуду.
     

    Цитата:
    Если мне понадобится удалять строки с тегами

    Да что угодно, скрипт все остальное игнорирует.

    Всего записей: 15440 | Зарегистр. 20-09-2014 | Отправлено: 11:32 26-11-2020
    bk99



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

    Цитата:
    простая html страница с подключенной jquery библиотекой

    Спасибо. Попробую сделать сам. Если не справлюсь - буду просить помочь.
     
    upd
    Создал .html файл следующего содержимого:

    Код:
    <head>
        <title>Compressor</title>
        <script src="jquery-3.5.1.min.js"></script>
        <script type="text/javascript">
            $('button').on('click', function() {
            var ta = $('textarea'), data = $(ta.val()), str = ['<trk><name>'];
            str[0] += data.find('name').text() + '</name>';
            str.push('  <trkseg>');
            $.each(data.find('trkpt'), function() {
            str.push('    <trkpt lat="' + ($(this).attr('lat') * 1).toFixed(5) +
                           '" lon="' + ($(this).attr('lon') * 1).toFixed(5) +
              '"></trkpt>');
            });
            str.push('  </trkseg>');
            str.push('</trk>');
            ta.val(str.join("\n"));
            });
        </script>  
     
        <style type="text/css">
            button {
                width: 100%;
                padding: 10px;
                text-align: center;
                }
            textarea {
                width: 100%;
                height: 300px;
                }
      </style>
     
    </head>
    <body>
     
    <button type='button'>Convert</button>
    <textarea></textarea>
        
    </body>
    </html>

     
    кнопка и текстовое поле рисуется, но конвертация не происходит. Файл jquery-3.5.1.min.js лежит в той же папке, что и .html файл. Где поправить?

    Всего записей: 947 | Зарегистр. 27-12-2005 | Отправлено: 11:35 26-11-2020 | Исправлено: bk99, 12:16 26-11-2020
    Mavrikii

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bk99
    Это, все же, не для данной темы. Я еще не у компа, могут быть опечатки.
    Подробнее...
    Тут, правда, может возникнуть проблема, так как для безопасности браузер может не запустить js файл с диска ) придется скопировать и вставить содержимое jquery и вставить между script тегами выше своего кода. Но может и не придется )

    Всего записей: 15440 | Зарегистр. 20-09-2014 | Отправлено: 15:02 26-11-2020 | Исправлено: Mavrikii, 15:14 26-11-2020
    YuS 2



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

    Цитата:
    1. Можно ли эту замечательную машинку в каком-либо виде сохранить себе, чтобы можно было действовать офлайн?
    2. Если мне понадобится удалять строки с тегами,  скажем, <sum>...</sum> (а не <time>...</time>), то эта штука тоже сработает?

    1. Если перенести вопросы сюда, можно на powershell скрипт сделать... ибо здесь оффтоп.
    2. Я правильно понял, что необходима работа с треками и требуется удалять все дочерние узлы? По сути, структура файлов имеет формат xml, а с ним powershell дружит...
    Там может быть и такое, в тех треках:

    Код:
    ...
        <trkseg>
          <trkpt lat="52.288120" lon="76.947960"><ele>119.000000</ele><geoidheight>-39.000000</geoidheight><time>2011-11-21T08:38:41Z</time><hdop>2.5</hdop><vdop>1.0</vdop><sat>3</sat><fix>2d</fix></trkpt>
          <trkpt lat="52.288116" lon="76.947960"><ele>119.000000</ele><geoidheight>-39.000000</geoidheight><time>2011-11-21T08:38:42Z</time><hdop>2.5</hdop><vdop>1.0</vdop><sat>3</sat><fix>2d</fix></trkpt>
          <trkpt lat="52.288120" lon="76.947952"><ele>119.000000</ele><geoidheight>-39.000000</geoidheight><time>2011-11-21T08:38:43Z</time><hdop>2.5</hdop><vdop>1.0</vdop><sat>3</sat><fix>2d</fix></trkpt>
          <trkpt lat="52.288120" lon="76.947952"><ele>119.000000</ele><geoidheight>-39.000000</geoidheight><time>2011-11-21T08:38:44Z</time><hdop>2.5</hdop><vdop>1.0</vdop><sat>3</sat><fix>2d</fix></trkpt>
          <trkpt lat="52.288116" lon="76.947937"><ele>119.000000</ele><geoidheight>-39.000000</geoidheight><time>2011-11-21T08:38:45Z</time><hdop>2.5</hdop><vdop>1.0</vdop><sat>3</sat><fix>2d</fix></trkpt>
          <trkpt lat="52.288120" lon="76.947945"><ele>119.000000</ele><geoidheight>-39.000000</geoidheight><time>2011-11-21T08:38:46Z</time><hdop>2.5</hdop><vdop>1.0</vdop><sat>3</sat><fix>2d</fix></trkpt>
          <trkpt lat="52.288109" lon="76.947952"><ele>119.000000</ele><geoidheight>-39.000000</geoidheight><time>2011-11-21T08:38:47Z</time><hdop>2.5</hdop><vdop>1.0</vdop><sat>3</sat><fix>2d</fix></trkpt>
          <trkpt lat="52.288101" lon="76.947945"><ele>119.099998</ele><geoidheight>-39.000000</geoidheight><time>2011-11-21T08:38:48Z</time><hdop>2.5</hdop><vdop>1.0</vdop><sat>3</sat><fix>2d</fix></trkpt>
          <trkpt lat="52.288105" lon="76.947960"><ele>119.099998</ele><geoidheight>-39.000000</geoidheight><time>2011-11-21T08:38:49Z</time><hdop>2.5</hdop><vdop>1.0</vdop><sat>3</sat><fix>2d</fix></trkpt>
          <trkpt lat="52.288116" lon="76.947952"><ele>119.199997</ele><geoidheight>-39.000000</geoidheight><time>2011-11-21T08:38:50Z</time><hdop>2.5</hdop><vdop>1.0</vdop><sat>3</sat><fix>2d</fix></trkpt>
          <trkpt lat="52.288124" lon="76.947914"><ele>119.199997</ele><geoidheight>-39.000000</geoidheight><time>2011-11-21T08:38:51Z</time><hdop>2.5</hdop><vdop>1.0</vdop><sat>3</sat><fix>2d</fix></trkpt>
        </trkseg>
    ...

     

    Цитата:
    - округляю циферки до пятого знака после запятой.

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

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 21:38 26-11-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