Регулярные выражения на все случаи жизни

Discussion in 'Внеконкурсные статьи' started by CSS, Jul 10, 2015.

  1. ssXXXss

    ssXXXss Client

    Joined:
    Dec 23, 2014
    Messages:
    6,918
    Likes Received:
    1,751
    как понять 1000 раз, вроде нет ничего затратного по времени, у тебя на странице таких значений много ?
    и ты парсишь в цикле ?
    можно поставить по короткому совпадению и пробел убрать в конце
     
  2. CmauJluk

    CmauJluk Client

    Joined:
    Dec 25, 2017
    Messages:
    182
    Likes Received:
    20
    Помогите выражением взять адрес, он всегда будет разным включая область

    <ymaps><ymaps class="ymaps-2-1-60-balloon-content__header">Большое Толбино</ymaps>Московская область<br>Подольский район<br>Большое Толбино</ymaps>
     
  3. sergodjan66

    sergodjan66 Administrator Staff Member

    Joined:
    Sep 5, 2012
    Messages:
    9,194
    Likes Received:
    3,466
    upload_2018-3-21_23-37-8.png

    upload_2018-3-21_23-40-42.png
     
    CmauJluk likes this.
  4. CmauJluk

    CmauJluk Client

    Joined:
    Dec 25, 2017
    Messages:
    182
    Likes Received:
    20
  5. sergodjan66

    sergodjan66 Administrator Staff Member

    Joined:
    Sep 5, 2012
    Messages:
    9,194
    Likes Received:
    3,466
    вторым экшеном как раз они убираются..
     
    CmauJluk likes this.
  6. CmauJluk

    CmauJluk Client

    Joined:
    Dec 25, 2017
    Messages:
    182
    Likes Received:
    20
    Экшен не заметил :-)
     
  7. JanCarlo

    JanCarlo Client

    Joined:
    Mar 4, 2018
    Messages:
    280
    Likes Received:
    29
    Ребят, очень простой вопрос - как удалить дубли строк, и в некоторых строках удалить окончания и дописать сайт?
    [​IMG]
    1)нужно удалить все строки дубликаты
    2)убрать окончания #loan=72
    3)дописать везде www.site.com перед /used/

    помогите составить регулярку?
    Заранее спасибо и лайк))
     
  8. Dimionix

    Dimionix Moderator

    Joined:
    Apr 9, 2011
    Messages:
    3,079
    Likes Received:
    2,603
    Очень простой C# код
    Code (CSharp):
    1. IZennoList list = project.Lists["List"]; // список проекта, в который класть результат
    2. string input = project.Variables["html"].Value; // переменная проекта с кодом
    3.  
    4. lock (SyncObjects.ListSyncer) {
    5.     list.AddRange(Regex.Matches(input, @"/used/.*?(?="")")
    6.         .Cast<Match>()
    7.         .Where(m => m.Success)
    8.         .Select(m => "www.site.com" + m.Value
    9.             .Replace("#loan=72", "")
    10.             .Trim())
    11.         .Distinct());
    12. }
     
    JanCarlo likes this.
  9. tatarin

    tatarin Client

    Joined:
    Oct 28, 2012
    Messages:
    481
    Likes Received:
    66
    Не поможете?

    Есть такой код:
    Code (text):
    1. <?php
    2. }
    3. ?>
    4.  
    5.           <div id="primary" class="content-area">
    6.             <main id="main" class="site-main">
    7.  
    8.             <?php
    9.             while ( have_posts() ) : the_post();
    10.  
    11.               get_template_part( 'template-parts/content', get_post_type() );
    12.  
    13.               dream_post_navigation();
    14.  
    15.               // If comments are open or we have at least one comment, load up the comment template.
    16.               if ( comments_open() || get_comments_number() ) :
    17.                 comments_template();
    18.               endif;
    19.  
    20.             endwhile; // End of the loop.
    21.             ?>
    22.  
    23.             </main><!-- #main -->
    24.           </div><!-- #primary -->
    25.  
    26. <?php
    27. if ($blog_layout == 'right_sidebar') {
    28. ?>
    Нужно найти и удалить:

    // If comments are open or we have at least one comment, load up the comment template.
    if ( comments_open() || get_comments_number() ) :
    comments_template();
    endif;

    Кол-во отступов всегда может отличаться! Спасибо!
     
  10. Dimionix

    Dimionix Moderator

    Joined:
    Apr 9, 2011
    Messages:
    3,079
    Likes Received:
    2,603
    В лёгкую нашёл и удалил, вот:
    Code (text):
    1. <?php
    2. }
    3. ?>
    4.  
    5.           <div id="primary" class="content-area">
    6.             <main id="main" class="site-main">
    7.  
    8.             <?php
    9.             while ( have_posts() ) : the_post();
    10.  
    11.               get_template_part( 'template-parts/content', get_post_type() );
    12.  
    13.             endwhile; // End of the loop.
    14.             ?>
    15.  
    16.             </main><!-- #main -->
    17.           </div><!-- #primary -->
    18.  
    19. <?php
    20. if ($blog_layout == 'right_sidebar') {
    21. ?>
    :D
     
  11. Dimionix

    Dimionix Moderator

    Joined:
    Apr 9, 2011
    Messages:
    3,079
    Likes Received:
    2,603
    Ну или
    Code (text):
    1. .*If comments[\w\W]*?endif;
    заменить на пустоту.
     
    tatarin likes this.
  12. Vlad_Curnoi

    Vlad_Curnoi Client

    Joined:
    Aug 9, 2017
    Messages:
    278
    Likes Received:
    126
    ТОварищи подскажите регулярку чтоб получить из url только домен
    Например есть несколько вариант
    https://toster.ru/
    https://www.toster.ru/
    toster.ru
    нужна регулярка чтоб получить только "toster"
     
  13. doc

    doc Client

    Joined:
    Mar 30, 2012
    Messages:
    7,071
    Likes Received:
    3,325
    регулярка прокатит только на однотипных записях. Если домен будет 3го уровня, если будут сабдомены и т.д., алгоритм вычисления будет куда сложнее
    в общем на твоих записях прокатит это
    Code (text):
    1. (?<=https?://(www\.)?)\w+(-\w+)*(?=\.\w+/)
     
  14. Vlad_Curnoi

    Vlad_Curnoi Client

    Joined:
    Aug 9, 2017
    Messages:
    278
    Likes Received:
    126
    Неа не катит для доменов без https
     
  15. doc

    doc Client

    Joined:
    Mar 30, 2012
    Messages:
    7,071
    Likes Received:
    3,325
    Code (text):
    1. (?m)(?<=^(https?://)?(www\.)?)\w+(-\w+)*(?=\.\w+/?$)
     
  16. one

    one Client

    Joined:
    Sep 22, 2015
    Messages:
    5,193
    Likes Received:
    864
  17. Vlad_Curnoi

    Vlad_Curnoi Client

    Joined:
    Aug 9, 2017
    Messages:
    278
    Likes Received:
    126
    Спасибо!))А для таких доменов возможно?
    http://www.360websolutions.co.uk/
     
  18. radv

    radv Client

    Joined:
    May 11, 2015
    Messages:
    253
    Likes Received:
    129
    делаешь предварительную проверку адреса на наличие //, www и точек в адресе (и поддоменов, если нужно, или доменных зон и наличие / в конце) и делаешь switch по которому задаешь значение для регулярки конкретного варианта. Тогда отработает любые варианты, включая кирилицу. Ненужные символы например www. можно заменить на пустоту
     
    Last edited: May 11, 2018
  19. doc

    doc Client

    Joined:
    Mar 30, 2012
    Messages:
    7,071
    Likes Received:
    3,325
    для таких доменов, чтобы всё работало 100% нужно собрать все возможные домены 2го уровня
     
  20. radv

    radv Client

    Joined:
    May 11, 2015
    Messages:
    253
    Likes Received:
    129
    можно в процессе собирать все адреса, а потом составить справочник по поддоменам
     
  21. doc

    doc Client

    Joined:
    Mar 30, 2012
    Messages:
    7,071
    Likes Received:
    3,325
    конечно можно, но это всё равно подразумевает ручной анализ, опять же, это не регулярка. Вообще можно заведомо считать, что если домен по длине меньше 3-4х символов, то он нам не подходит и смотреть надо на уровень выше, но это тоже не 100% результат будет
     
  22. konfuciy

    konfuciy Client

    Joined:
    May 7, 2014
    Messages:
    1,316
    Likes Received:
    113
    (?<=(^|\n)(http(s|)\:\/\/|)+(www\.|)+)(?!w+\.)[\d\w\-]+?(?=(\.\w+)+(\/|)\n)
    или
    (?m)(?<=^(http?s?://)?(www\.)?)(?!w+\.)[\d\w\-]+?(?=(\.\w+)+\/?$)

    в конструкторе работает, в том числе и для таких доменов http://www.360websolutions.co.uk/
     
    Last edited: May 17, 2018
  23. TazMan

    TazMan Client

    Joined:
    Jan 5, 2017
    Messages:
    76
    Likes Received:
    6
  24. doc

    doc Client

    Joined:
    Mar 30, 2012
    Messages:
    7,071
    Likes Received:
    3,325
  25. TazMan

    TazMan Client

    Joined:
    Jan 5, 2017
    Messages:
    76
    Likes Received:
    6
    Спасибствуем ! работает :-)
     
  26. Vinovnik

    Vinovnik Client

    Joined:
    Aug 10, 2016
    Messages:
    292
    Likes Received:
    85
    Помогите, взял кусок кода, удалил все теги в итоге получилось в переменной такое
    Code (text):
    1.  
    2.  
    3.                                        
    4.                             Год выпуска:  
    5.                             2018  
    6.                        
    7.                
    8.                                        
    9.                             Жанр:  
    10.                             драма, спорт  
    11.                        
    12.                
    13.                                        
    14.                             Страна:  
    15.                             Россия  
    16.                        
    17.                
    18.  
    19.                        
    20.                             Продолжительность:  
    21.                             139 мин.  
    22.                        
    23.  
    24.                                        
    25.                             Премьера (мир):  
    26.                             20 апреля 2018  
    27.                        
    28.                
    29.                                        
    30.                             Премьера (РФ):  
    31.                             19 апреля 2018  
    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.            
    Как это привести в нормальный вид?
     
  27. doc

    doc Client

    Joined:
    Mar 30, 2012
    Messages:
    7,071
    Likes Received:
    3,325
    а нормальный это какой?
     
  28. inilim

    inilim Client

    Joined:
    Sep 16, 2017
    Messages:
    269
    Likes Received:
    72
    после TRIM
    Screenshot_1.jpg
     
    Роман likes this.
  29. Vinovnik

    Vinovnik Client

    Joined:
    Aug 10, 2016
    Messages:
    292
    Likes Received:
    85
    Code (text):
    1. Год выпуска:  
    2. 2018  
    3. Жанр:  
    4. драма, спорт  
    5. Страна:  
    6. Россия  
    7. Продолжительность:  
    8. 139 мин.  
    9. Премьера (мир):  
    10. 20 апреля 2018  
    11. Премьера (РФ):  
    12. 19 апреля 2018  
    13. Режиссер:  
    14. Данила Козловский  
    15. В ролях:  
    16. Андрей Смоляков, Данила Козловский, Александр Ильин мл., Игорь Гордин, Виктор Вержбицкий, Владимир Ильин, Павел Ворожцов, Ирина Горбачева, Ольга Зуева, Мария Лобанова  
    17. Автор сценария:  
    18. Данила Козловский, Андрей Золотарев, Сергей Четверухин  
    19. Продюсер:  
    20. Данила Козловский, Леонид Верещагин, Петр Ануров  
    21. Оператор:  
    22. Федор Лясс  
    23. Художник:  
    24. Варя Авдюшко, Сергей Агин
     
  30. Vinovnik

    Vinovnik Client

    Joined:
    Aug 10, 2016
    Messages:
    292
    Likes Received:
    85
    Trim не убирает лишнее внутри, а только сначала и вконце
     

Пользователи просматривающие тему (Пользователей: 0, Гостей: 0)