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

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



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

    Цитата:
    то зачем уговаривать

    Да, вроде не уговариваю...  
    Человек спасибо даже сказал, что не каждый делает.  
    Но ведь что-то не получается у него, вот и интересно - что именно пошло не так...

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 15:35 05-02-2018
    Hjkma

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

    Цитата:
    D:\path\to\the\folder\filename1.txt --- filename2.txt --- filename3.txt --- filename4.txt
    D:\path\to\the\folder2\filename1.txt --- filename2.txt --- filename3.txt --- filename4.txt
    D:\path\to\the\folder3\filename1.txt --- filename2.txt --- filename3.txt --- filename4.txt

    Так вот нужно вот эти  

    Цитата:
     ---  

    заменить на символ переноса и путь папок в начале строк. Чтобы на выходе вышло:

    Цитата:
    D:\path\to\the\folder\filename1.txt
    D:\path\to\the\folder\filename2.txt
    D:\path\to\the\folder\filename3.txt
    D:\path\to\the\folder\filename4.txt
    D:\path\to\the\folder2\filename1.txt
    D:\path\to\the\folder2\filename2.txt
    D:\path\to\the\folder2\filename3.txt
    D:\path\to\the\folder2\filename4.txt
    D:\path\to\the\folder3\filename1.txt
    D:\path\to\the\folder3\filename2.txt
    D:\path\to\the\folder3\filename3.txt
    D:\path\to\the\folder3\filename4.txt

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

    Всего записей: 242 | Зарегистр. 04-03-2015 | Отправлено: 17:05 07-02-2018
    YuS_2



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

    Цитата:
    названия папок и файлов условные

    Вообще-то, регэкспы не любят условностей, потому как шаблоны, сами по себе сильно условны и лучше составляются по реальному тексту...
    Ну, а так, условный шаблон на условный текст:

    Код:
    Что:^([^\n]+\\)([^\n]+?) *--- *([^\n]+?) *--- *([^\n]+?) *--- *([^\n]+?) *$
    Чем:\1\2\n\1\3\n\1\4\n\1\5

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 18:27 07-02-2018 | Исправлено: YuS_2, 18:31 07-02-2018
    Hjkma

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

    Цитата:
    D:\swordsofwesteros_tumblr\small\ --- tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpg --- tumblr_p15ws4ONFk1rl9ejbo1_1280.jpg --- tumblr_oyu8ajZgsB1wbme7eo1_1280.jpg --- tumblr_p1jy346mIn1wmnz6mo4_1280.gif --- tumblr_p1jy346mIn1wmnz6mo6_1280.gif --- tumblr_p1l1asS6Ut1wm0w0wo1_1280.jpg --- tumblr_m282ur8Svk1rqpthwo1_1280.jpg --- tumblr_p2klq9YXbo1tkiagmo4_1280.jpg --- tumblr_p2k29aEtK91x1rkcko1_1280.jpg --- tumblr_p2ljdbDgoo1wxksl6o1_1280.jpg --- tumblr_p2ni2mvmuj1x1ngs1o2_1280.jpg --- tumblr_p2ni2mvmuj1x1ngs1o6_1280.jpg --- tumblr_ogvly85yip1v4i8bno1_1280.gif --- tumblr_o451mp6F7j1v4doyto1_1280.jpg --- tumblr_p2vuk8hotD1x2tyb9o1_1280.jpg --- tumblr_p2vuk8hotD1x2tyb9o4_1280.jpg --- tumblr_mtq05cwwQq1r4xh0qo1_1280.jpg --- tumblr_mtq04yr5T11r4xh0qo1_1280.jpg --- tumblr_mtq04jQ4A61r4xh0qo1_1280.jpg --- tumblr_mtq044s38g1r4xh0qo1_1280.jpg --- tumblr_otfvmwlrHn1vyi9ypo1_1280.jpg --- tumblr_oqt847Cghr1t29wmxo1_1280.jpg --- tumblr_o3iu29d9F71t29wmxo1_1280.jpg --- tumblr_o5hb52OpRU1u545pyo1_1280.jpg --- tumblr_o7un5bipkl1t78kt9o1_1280.jpg --- tumblr_msnqeoauX71roly3xo1_1280.jpg --- tumblr_ncirydZfIP1qchcc6o1_1280.jpg --- tumblr_okwsjuXnZo1uf20w9o1_1280.jpg --- tumblr_npv09sq6401u8y6vgo1_1280.jpg --- tumblr_ln5wv9QpmM1qlvimyo1_1280.jpg --- tumblr_owxdi40FkA1wvzz77o1_1280.jpg --- tumblr_mlbbjukVRv1ru94nao1_1280.jpg --- tumblr_p2530jvreo1wip86uo1_1280.jpg --- tumblr_no9hgjYdhE1sq4lvho1_1280.png --- tumblr_p0a5ph65ig1qjdnboo1_1280.jpg --- tumblr_p02j2dqUXq1vd4861o1_1280.jpg --- tumblr_nmpf2zo0UW1sq4lvho1_1280.jpg --- tumblr_oz36le6h7X1wdyl3fo1_1280.jpg --- tumblr_oz36le6h7X1wdyl3fo3_1280.jpg --- tumblr_oz36le6h7X1wdyl3fo4_1280.jpg --- tumblr_oz36le6h7X1wdyl3fo5_1280.jpg --- tumblr_oxrkq788Ri1w1i4b9o2_1280.jpg --- tumblr_oxrkq788Ri1w1i4b9o3_1280.jpg --- tumblr_nmduhcfoNJ1rpbdduo1_1280.jpg --- tumblr_oud5bzUSe81vbt7uyo1_1280.jpg --- tumblr_ou93t5tzuc1wx46iwo3_1280.jpg --- tumblr_ou93t5tzuc1wx46iwo4_1280.jpg --- tumblr_ou93t5tzuc1wx46iwo7_1280.jpg --- tumblr_ou93t5tzuc1wx46iwo8_1280.jpg --- tumblr_nhexe1uMbh1sws3pxo1_1280.jpg --- tumblr_osezk0nDTe1s6c0g8o1_1280.jpg --- tumblr_nh1dbgLcS91sws3pxo1_1280.jpg --- tumblr_orla9lzKOd1vd4861o1_1280.jpg --- tumblr_oqemq1p4Nw1vd4861o1_1280.jpg --- tumblr_opmeqrwDV41ttip1qo5_1280.jpg --- tumblr_nd4pdzKptP1s5lvt5o1_1280.jpg --- tumblr_op19brF7ZQ1usnt2co1_1280.jpg --- tumblr_oku3ccQsRl1w3efgpo2_1280.jpg --- tumblr_oku3ccQsRl1w3efgpo5_1280.jpg --- tumblr_oie1k27tlJ1r2oq0vo1_1280.jpg --- tumblr_n00ej0Bjg21sws3pxo1_1280.jpg --- tumblr_myxoz7LIEg1sjqkcgo8_1280.jpg --- tumblr_mxhl53Jz7O1sv20rro3_1280.jpg

     
    Добавлено:
    Думал регекс  

    Цитата:
    Что: ((D:\\.*\\)| --- )
    Чем: \r\n\2

    должен был помочь. Но не работает. Почему так? Вроде бы вторая группа захватывает пути и " --- " матчатся и замена \2 должна была бы их заменять на пути, но этого не происходит, никакие пути не появляются, почему так?
     
    Так

    Цитата:
    Что: (D:\\.*\\)|( --- )
    Чем: \r\n\1

    тоже не работает. Засада какая-то.

    Всего записей: 242 | Зарегистр. 04-03-2015 | Отправлено: 18:43 07-02-2018 | Исправлено: Hjkma, 19:42 07-02-2018
    sikemo

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    не до конца понимаю, но кмк, легче делать в эл. таблицах.
     
    пишите имена  
    filename1.txt  
    filename2.txt  
    filename3.txt  
    filename4.txt  
     
    в  колонку, потом вкидываете необходимый ардес-доплнение — вд другую, перед ней. Потом, в том же экселе даблклик размножает адрес до конца колонки. Удаление символа TAB | конец ячейки для номрализации адреса — regexp'ом.
    Цитата:
     
     

     
     
    Добавлено:

    Цитата:
    Добавлено:  
    Думал регекс  
     
    Цитата:
    Что: ((D:\\.*\\)| --- )  
    Чем: \r\n\2

     
    | --- в таком выражении все равно будет \1
     
    Добавлено:
    парсить надо на .+jpg, тогда
     
    адрес1\1\r\nадрес2\2\r\n\nадрес3\3\r\n получится

    Всего записей: 1326 | Зарегистр. 27-11-2008 | Отправлено: 20:20 07-02-2018
    YuS_2



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

    Цитата:
    должен был помочь. Но не работает.

    Не должен и не будет работать. Такие задачи не для регэкспов, т.к. это уже не совсем регулярный текст, тут требуется ЯП... к тому же, если исходный текст достаточно объемный, то будет великий тормоз на регэкспах.
    Вот решение для powershell:

    Код:
    $infile = 'in.txt'
    $outfile = 'out.txt'
    $splt = ' --- '
    function arr {
        process {
            $arr = $_.split($splt)
            $arr[0]
            for($i=1; $i -lt $arr.count; $i++){$arr[$i].insert(0,$arr[0])}
        }
    }
    gc $infile -enc UTF8|arr|out-file $outfile -enc UTF8


    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 21:03 07-02-2018
    Hjkma

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sikemo
    Много будет ручной работы в первом варианте, так как путей у меня много, тысячи их. Ну а второй вариант не подходит по этой же причине, как вписать в замену тысячи путей?
    YuS_2
    Спасибо за код, попробую. А нельзя ли сделать это тоже самое на Python? Просто в Notepad++ есть плагин Python-script, можно сделать скрипт и навесить кнопку в Notepad'е, лично мне так удобнее будет. И чтобы вывод был прямо в консоли или вообще во вкладке текстового файла в Notepad++.
     
    Добавлено:
    Только что опопробовал код, работает криво, если в путях и названиях есть пробелы.
    Пример:
    Как было:

    Цитата:
    :\для работы с сборником\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280 test1.jpg --- tumblr_p15ws4ONFk1rl9ejbo1_1280 test2.jpg --- tumblr_oyu8ajZgsB1wbme7eo1_1280.jpg --- tumblr_p1jy346mIn1wmnz6mo4_1280.gif --- tumblr_p1jy346mIn1wmnz6mo6_1280.gif --- tumblr_p1l1asS6Ut1wm0w0wo1_1280.jpg --- tumblr_m282ur8Svk1rqpthwo1_1280.jpg --- tumblr_p2klq9YXbo1tkiagmo4_1280.jpg --- tumblr_p2k29aEtK91x1rkcko1_1280.jpg

    Как стало:

    Цитата:
    D:\для
    D:\дляработы
    D:\дляс
    D:\длясборником\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280
    D:\дляtest1.jpg
    D:\для
    D:\для
    D:\для
    D:\для
    D:\дляtumblr_p15ws4ONFk1rl9ejbo1_1280
    D:\дляtest2.jpg
    D:\для
    D:\для
    D:\для
    D:\для
    D:\дляtumblr_oyu8ajZgsB1wbme7eo1_1280.jpg
    D:\для
    D:\для
    D:\для
    D:\для
    D:\дляtumblr_p1jy346mIn1wmnz6mo4_1280.gif
    D:\для
    D:\для
    D:\для
    D:\для
    D:\дляtumblr_p1jy346mIn1wmnz6mo6_1280.gif
    D:\для
    D:\для
    D:\для
    D:\для
    D:\дляtumblr_p1l1asS6Ut1wm0w0wo1_1280.jpg
    D:\для
    D:\для
    D:\для
    D:\для
    D:\дляtumblr_m282ur8Svk1rqpthwo1_1280.jpg
    D:\для
    D:\для
    D:\для
    D:\для
    D:\дляtumblr_p2klq9YXbo1tkiagmo4_1280.jpg
    D:\для
    D:\для
    D:\для
    D:\для
    D:\дляtumblr_p2k29aEtK91x1rkcko1_1280.jpg

    А еще я заметил, что если убрать вообще пробелы, то код тоже работает криво:
    Как было:

    Цитата:
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpg --- tumblr_p15ws4ONFk1rl9ejbo1_1280.jpg --- tumblr_oyu8ajZgsB1wbme7eo1_1280.jpg --- tumblr_p1jy346mIn1wmnz6mo4_1280.gif --- tumblr_p1jy346mIn1wmnz6mo6_1280.gif --- tumblr_p1l1asS6Ut1wm0w0wo1_1280.jpg --- tumblr_m282ur8Svk1rqpthwo1_1280.jpg --- tumblr_p2klq9YXbo1tkiagmo4_1280.jpg --- tumblr_p2k29aEtK91x1rkcko1_1280.jpg --- tumblr_p2ljdbDgoo1wxksl6o1_1280.jpg --- tumblr_p2ni2mvmuj1x1ngs1o2_1280.jpg --- tumblr_p2ni2mvmuj1x1ngs1o6_1280.jpg

    Как стало:

    Цитата:
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpg
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpg
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpg
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpg
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpg
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpgtumblr_p15ws4ONFk1rl9ejbo1_1280.jpg
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpg
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpg
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpg
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpg
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpgtumblr_oyu8ajZgsB1wbme7eo1_1280.jpg
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpg
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpg
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpg
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpg
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpgtumblr_p1jy346mIn1wmnz6mo4_1280.gif
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpg
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpg
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpg
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpg
    D:\small\tumblr_nfvxn8ZIFG1rrckn7o1_1280.jpgtumblr_p1jy346mIn1wmnz6mo6_1280.gif

    А если сделать файл в виде:

    Цитата:
    D:\small\ --- tumblr_p15ws4ONFk1rl9ejbo1_1280.jpg --- tumblr_oyu8ajZgsB1wbme7eo1_1280.jpg --- tumblr_p1jy346mIn1wmnz6mo4_1280.gif --- tumblr_p1jy346mIn1wmnz6mo6_1280.gif --- tumblr_p1l1asS6Ut1wm0w0wo1_1280.jpg --- tumblr_m282ur8Svk1rqpthwo1_1280.jpg

    то будет

    Цитата:
    D:\small\
    D:\small\
    D:\small\
    D:\small\
    D:\small\
    D:\small\tumblr_p15ws4ONFk1rl9ejbo1_1280.jpg
    D:\small\
    D:\small\
    D:\small\
    D:\small\
    D:\small\tumblr_oyu8ajZgsB1wbme7eo1_1280.jpg
    D:\small\
    D:\small\
    D:\small\
    D:\small\
    D:\small\tumblr_p1jy346mIn1wmnz6mo4_1280.gif
    D:\small\
    D:\small\
    D:\small\
    D:\small\
    D:\small\tumblr_p1jy346mIn1wmnz6mo6_1280.gif
    D:\small\
    D:\small\
    D:\small\
    D:\small\
    D:\small\tumblr_p1l1asS6Ut1wm0w0wo1_1280.jpg
    D:\small\
    D:\small\
    D:\small\
    D:\small\
    D:\small\tumblr_m282ur8Svk1rqpthwo1_1280.jpg

    Всего записей: 242 | Зарегистр. 04-03-2015 | Отправлено: 06:38 08-02-2018 | Исправлено: Hjkma, 06:40 08-02-2018
    YuS_2



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

    Цитата:
    работает криво

    Забыл предупредить, что powershell нужен версии Core v6.0, а для более ранних версий, скрипт подправил (ниже по тексту), там сплит немного своеобразно работал ранее  
    А вообще:
    1. Принципиальных препятствий для перевода его на питон, наверное, нет, как и на другие варианты, но это уже не ко мне.
    2. И ещё: код работает с тем примером, который Вы показали. Если требуется, чтобы код работал с тем, что есть, то составителю кода необходимо таки иметь представление об этом "есть".
     

    Код:
    $infile = 'in.txt'
    $outfile = 'out.txt'
    $splt = ' * --- * '
     
    function arr {
        process {
            $arr = $_ -split "$splt"
            $b = $arr[0] -replace '^(.+\\).*$','$1'
            $arr[0]
            for($i=1; $i -lt $arr.count; $i++){$arr[$i].insert(0,$b)}
        }
    }
    gc $infile -enc UTF8|arr|out-file $outfile -enc UTF8


    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 10:32 08-02-2018 | Исправлено: YuS_2, 10:37 08-02-2018
    Hjkma

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuS_2
    Спасибо! Работает хорошо.

    Всего записей: 242 | Зарегистр. 04-03-2015 | Отправлено: 10:57 08-02-2018
    VadKomarov



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Здравствуйте. По работе надо с расписанием поездов иногда работать, но не хочется постоянно терять время на то что бы выдергивать расписание того или иного поезда. Нужна ваша помощь что бы написать регулярное выражение, думал сначала открывать код страницы и там пытаться выдергивать, но из за отсутствия опыта в регулярных выражениях что то плохо это выходит. помогите для Расписание поезда такой странички написать, и для такого текста: Копия со страницы в текстовом формате написать регулярные выражения работающие  по похожему принципу Ссылка

    Всего записей: 100 | Зарегистр. 01-05-2005 | Отправлено: 14:54 10-02-2018 | Исправлено: VadKomarov, 14:56 10-02-2018
    YuS_2



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

    Цитата:
    написать регулярные выражения работающие  по похожему принципу

    Да запросто, причем в безразмерном количестве...
    Только зачем?
    Вам необходимо сформулировать задачу: А что же требуется в тексте найти или даже заменить? В общем, какое действие требуется...

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 15:11 10-02-2018
    VadKomarov



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

    Цитата:
    Да запросто, причем в безразмерном количестве...  

    Ну это просто прекрасно...
    в общем вот тут часть кода Подробнее... страницы, нужно выбрать (код, Станция, Прибытие, Стоянка, Отправление, Километраж, В пути)
     
    примерно код такой необходимо обработать

    Код:
    <tr id="5700336" class="select " data-station="11097" data-ord="40">
            <td class="noSelect" style="">&nbsp;</td>
            <td class="noSelect" style="">
                        </td>
            <td class="flag" style="">
                                                    <a href="/poezda/station_d.php?nnst=2060001">
                            Нижний Новгород Моск.                    </a>
                                        </td>
            <td style="">
                05:38        </td>
     
            <td style="white-space: nowrap;" class="">
                12<span class="miniNbsp">&nbsp;</span>м        </td>
            <td style="">
                05:50        </td>
            <td style="">
                461<span class="miniNbsp">&nbsp;</span>км        </td>
            <td class="routetime" style="white-space: nowrap;">
                <div class="routetime-full">5<span class="miniNbsp">&nbsp;</span>ч&nbsp;53<span class="miniNbsp">&nbsp;</span>м</div>
                <div align="right"><img class="routetime-grad" src="https://cdn1.tu-tu.ru/images2/yellow-grad.png"></div>
            </td>
        </tr>
    и результатом должно быть подобное:
    [2060001    Нижний Новгород Моск.    05:38    12 м    05:50    461 км    5 ч 53 м]
     
    ну или вот :

    Код:
            <tr id="5700364" class="select " data-station="9975" data-ord="320">
            <td class="noSelect">&nbsp;</td>
            <td class="noSelect">
                        </td>
            <td class="flag">
                                                    <a href="/poezda/station_d.php?nnst=2050000">
                            Чита                    </a>
                                        </td>
            <td>
                18:47        </td>
     
            <td style="white-space: nowrap;" class="b-train__route_table__long">
                1<span class="miniNbsp">&nbsp;</span>ч&nbsp;12<span class="miniNbsp">&nbsp;</span>м        </td>
            <td>
                19:59        </td>
            <td>
                6166<span class="miniNbsp">&nbsp;</span>км        </td>
            <td class="routetime" style="white-space: nowrap;">
                <div class="routetime-full" >3<span class="miniNbsp">&nbsp;</span>д&nbsp;19<span class="miniNbsp">&nbsp;</span>ч&nbsp;2<span class="miniNbsp">&nbsp;</span>м</div>
                <div align="right"><img class="routetime-grad" src="https://cdn1.tu-tu.ru/images2/yellow-grad.png" /></div>
            </td>
        </tr>
     и результатом должно быть подобное:
    2050000    Чита    18:47    1 ч 12 м    19:59    6166 км    3 д 19 ч 2 м
     
    ну а это сама страница

    Всего записей: 100 | Зарегистр. 01-05-2005 | Отправлено: 16:28 10-02-2018 | Исправлено: VadKomarov, 16:35 10-02-2018
    YuS_2



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

    Цитата:
    примерно код такой необходимо обработать

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

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 21:29 10-02-2018
    sikemo

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VadKomarov
     
    что-то вспомнился консольный режим в Linux:  загрузить страницу, выпарсить что-то и/при потребности, перенаправить вывод…

    Всего записей: 1326 | Зарегистр. 27-11-2008 | Отправлено: 22:47 10-02-2018
    regist123



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

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

    Всего записей: 7189 | Зарегистр. 20-03-2009 | Отправлено: 00:38 11-02-2018
    qw12



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно ли первое вхождение?
    as78da89s:asdq23q2d:d234d23!
    \90210\j219s8a:sad239e2ex asd:asdd23e32
     
    Интересует первое двоеточие с начала строки, и только оно.

    Всего записей: 601 | Зарегистр. 04-06-2001 | Отправлено: 01:54 11-02-2018
    YuS_2



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

    Цитата:
    Можно ли первое вхождение?

    Можно

    Код:
    ^[^:\n]*\K:

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 09:43 11-02-2018
    qw12



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

    Всего записей: 601 | Зарегистр. 04-06-2001 | Отправлено: 10:10 11-02-2018
    Hjkma

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

    Цитата:
    Photo Url: h, t, t, p, s, :, /, /, 6, 8, ., m, e, d, i, a, ., t, u, m, b, l, r, ., c, o, m, /, d, 3, 6, 9, e, 1, 8, 8, c, 5, a, 0, a, 9, 5, b, 2, 1, 6, 1, b, 6, 2, a, b, a, 5, 5, e, c, d, 7, /, t, u, m, b, l, r, _, o, v, 9, z, d, c, d, 5, U, 5, 1, w, v, b, y, d, h, o, 1, _, 1, 2, 8, 0, ., j, p, g
     

    Нужно чтобы если в начале строки стоят Photo Url, то символы (запятая и пробел)

    Цитата:
    ,  

    должны удаляться во всей строке. И если в начале строках слова Photo Url не стоят, то символы ", " не должны затрагиваться. Регулярки, предусматривающие множественное повторение поиска и замены, не нужны, нужно именно в один проход, таких символов у меня просто очень много.

    Всего записей: 242 | Зарегистр. 04-03-2015 | Отправлено: 12:08 24-02-2018 | Исправлено: Hjkma, 12:08 24-02-2018
    sikemo

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

    Всего записей: 1326 | Зарегистр. 27-11-2008 | Отправлено: 12:43 24-02-2018
    Открыть новую тему     Написать ответ в эту тему

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