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

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

    Редактировать | Цитировать | Сообщить модератору

    Цитата:
    их же тысячи
    не потянет

    Отправлено: 23:36 21-01-2016
    crotoff

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    hErAx
    в моей версии AkelPad нету замены во всех файлах
     

    Всего записей: 961 | Зарегистр. 17-04-2007 | Отправлено: 23:44 21-01-2016
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    crotoff предложенная мной регулярка не подошла?


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

    Всего записей: 7198 | Зарегистр. 20-03-2009 | Отправлено: 00:40 22-01-2016
    crotoff

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    regist123
    вобщем я менял через uvFilesCorrector, у него оказывается свой синтаксис, подошло такое выражение:
    </html>.{2,} - любой символ после </html> более 2 раз

    Всего записей: 961 | Зарегистр. 17-04-2007 | Отправлено: 01:36 22-01-2016
    V0lt_r



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть текст:
    Код:
    #EXTM3U
     
    #EXTINF:123, Sample artist - Sample title
    Sample.mp3
     
    #EXTINF:321,Example Artist - Example title
    Greatest Hits\Example.ogg

    И регулярное выражение:
    Код:
    (^|\n)([^#][^\n]+)

    По непонятной мне причине первой находится строка #EXTINF:123, Sample artist - Sample title, хотя строки начинающиеся с символа # по идее должны исключаться.
    Что может быть не так?
     
    Добавлено:
    Странно, но если два раза исключить символ #, то работает:
    Код:
    (^|\n)([^#]{2}[^\n]+)
    .
    Но правилнее оказалось так:
    Код:
    (^|\n)(?!#)([^\n]+)

     
    Всем спасибо. С праздником Победы!

    Всего записей: 722 | Зарегистр. 15-11-2015 | Отправлено: 10:26 09-05-2016
    Ramashika

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день!!! Нужна помощь по регуляркам в С#
     
    Есть текст  
    /*
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    */
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace ConsoleApplication3
    {  /// class Program here
      class Program
      {
        static void Main(string[] args)
        {
          /// TODO code application logic here
          string ss="sdfsdf\"\\*sdfsdf*\\\"";
          int i /*jjjjj*/ = 0;
          string s = "\t";
          char c = '\t';
          char cc = '/';
          string str = "'";//COMMENT
          char ccc = '*';
          char cccc = '"'; //"hjhkjhkj
          Console.WriteLine("/*dfsdf*////****/**//**Hello, world!\\");/**/ //
          int ccccc = 100/'*';
          char f = '\\';
          char f1 = '\n';
          char f2 = '\"';  
          "".ToString();
        }
      }
    }
     
     
    из него нужно убрать комметрарии /* */ , //, и вверху многоуровневые комментарии...
     
    Нужно составить 2 регулярных выражения для их нахождения ..и удалить после нахождения из текста, должен получится такой текст...
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace ConsoleApplication3
    {  
      class Program
      {
        static void Main(string[] args)
        {
           
          string ss="sdfsdf\"\\*sdfsdf*\\\"";
          int i  = 0;
          string s = "\t";
          char c = '\t';
          char cc = '/';
          string str = "'";
          char ccc = '*';
          char cccc = '"';  
          Console.WriteLine("/*dfsdf*////****/**//**Hello, world!\\");  
          int ccccc = 100/'*';
          char f = '\\';
          char f1 = '\n';
          char f2 = '\"';  
          "".ToString();
        }
      }
    }
     
     
    составила такие регулярки
     
    1) для /*   */
    Regex regex = new Regex(@"((\s+?|;)/\*[\s\S]*?\*/)");
     
    НО не удаляет верхний комметрарий..(((
     
    2) для // балбалбала
     
    Regex regex = new Regex(@"(\s+?|;)//[\s\S]*$");
     
     
    ПЛИЗ!!! ПОМОГИТЕ, нужна сдать в это воскресенье...

    Всего записей: 34 | Зарегистр. 25-04-2014 | Отправлено: 12:35 18-11-2016
    Vitus_Bering



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    На Perl будет так:
     
    1. $text =~ s/\/\*.+?\*\///sg;   ( Удаление всех комментариев в /*....*/ )
    2. $text =~ s/\s*\/\/.+?\n//g;   ( Удаление всех комментариев после //... )
     
    Пробуйте портировать в С#

    Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 11:45 19-11-2016
    Hjkma

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите составить регулярку для Notepad++. Нужно чтобы такая регулярка охватывала строки с искомыми словами с пробелами или любыми знаками между них, с началом строки или переносом строки, с пробелами или любыми знаками в начале и конце слов, кроме тех слов, в которых в начало и конце слов есть еще буквы. Пример: нужно охватить строки с словами "Die Hard".
    Нужно чтобы регулярка помечала такие строки как:
     1234 die hard 1234
    Die-Hard
    вфважодл "Die Hard" фвафва
    Регулярка не должна охватить такие слова как:
    вфавыаф Die Hardest ваввв
    Undie hard
    Die Hardd
     
    Пробовал регулярку в виде ^.*(\WDie\W\Hard\W).*$, но проблема в том, что такая регулярка в Notepad++ не охватывает строки с нужными словами, которые стоят в начале или конце строк. Что посоветуете?

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



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

    Код:
    (^|\"| )Die( |\Hard(\"| )

     

    Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 10:49 04-02-2017 | Исправлено: Vitus_Bering, 10:52 04-02-2017
    Hjkma

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Vitus_Bering
    Не работает такая регулярка в Notepad++
     
    upd. Все, работает, поправил скопированый код, смайлик запутал.
    Еще вопрос. А как это сделать с несколько запросами? Чтобы искать не только Die Hard, а еще например Terminator 2.
     
    Upd2. А нет, проблема осталась та же: не помечаются строки, искомые слова которых стоят в начале и конце строк. И запрос был неправильно услышан - нужно помечать не только искомые слова, а еще всю строку, в которых содержатся искомые слова. Помимо тех слов, которые содержат в начале и конце дополнительные буквы.

    Всего записей: 242 | Зарегистр. 04-03-2015 | Отправлено: 11:00 04-02-2017 | Исправлено: Hjkma, 11:15 04-02-2017
    Vitus_Bering



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

    Цитата:
    нужно помечать не только искомые слова, а еще всю строку

    Непонятно, что Вы хотите.
    Напишите примеры строк по принципу "было -> стало".

    Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 11:19 04-02-2017 | Исправлено: Vitus_Bering, 11:20 04-02-2017
    Hjkma

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Vitus_Bering
    Я где-то говорил про замену? Мне не нужно заменять, а нужно искать. Примеры уже даны выше. Как и детальное объяснение того, чего я хочу.

    Всего записей: 242 | Зарегистр. 04-03-2015 | Отправлено: 11:23 04-02-2017
    regist123



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

    Код:
    \WDie(\W)*Hard\W

     
    Hjkma 09:03 04-02-2017
    Цитата:
    любыми знаками между них

    Любой один знак или неограниченное кол-во знаков между ними?
    У меня сейчас захватит и
    Код:
    Die-+*\.Hard  

    если это не надо, то звёздочку в середине убери.
     
    Добавлено:
    и немного не учёл, если слова в кавычках, то и кавычки тоже надо захватить?

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

    Всего записей: 7198 | Зарегистр. 20-03-2009 | Отправлено: 11:46 04-02-2017
    Vitus_Bering



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

    Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 11:49 04-02-2017
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Hjkma 12:00 04-02-2017
    Цитата:
    И запрос был неправильно услышан - нужно помечать не только искомые слова, а еще всю строку, в которых содержатся искомые слова.

    Обновил

    Код:
    .*\WDie(\W)*Hard\W.*


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

    Всего записей: 7198 | Зарегистр. 20-03-2009 | Отправлено: 11:52 04-02-2017
    Hjkma

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    regist123
    Не работает, когда слова размещаются в начале или конце строк. И помечать нужно всю строку.
    Vitus_Bering
    Отлично, регулярка работает. Большое вам спасибо!

    Всего записей: 242 | Зарегистр. 04-03-2015 | Отправлено: 11:55 04-02-2017
    Vitus_Bering



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

    Цитата:
    .*\WDie(\W)*Hard\W.*

     
    В этом случае Die-Hard не работает

    Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 11:55 04-02-2017
    regist123



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Hjkma 12:55 04-02-2017
    Цитата:
    Не работает, когда слова размещаются в начале или конце строк.

    Пример строки можно? На приведённом вами у меня все выделяется из того что должно и не выделяется то что не должно. Я понимаю, что она первый взгляд похожа на вашу, но если сравнить, то в работе они отличаются.

    Цитата:
    И помечать нужно всю строку.

    В предыдущем посте обновлённый вариант.
     
    Добавлено:
    Vitus_Bering 12:55 04-02-2017
    Цитата:
    В этом случае Die-Hard не работает

    Всё работает
     

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

    Всего записей: 7198 | Зарегистр. 20-03-2009 | Отправлено: 11:56 04-02-2017
    Hjkma

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    regist123
    регулярка не работает с таким строками:
    die Die Hard
    Die Hard die
    Die Hard

    Всего записей: 242 | Зарегистр. 04-03-2015 | Отправлено: 12:01 04-02-2017
    Vitus_Bering



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    regist123
    Поставленная задача не решаема с использованием \w

    Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 12:05 04-02-2017
    Открыть новую тему     Написать ответ в эту тему

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