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

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    $_ = "s1/s2 / s3/sN";
     
    if( /^(s1)+(\s*\/.*\/\s*)+(sN)$/g )
    {
    $str1 = "$1" ;
    $strN = "$3" ;
    }
     
    print "$_ $str1 $strN";
     
    p.s. Только зачем такая возня ? split же именно для этого удобнее  

    Всего записей: 935 | Зарегистр. 11-10-2002 | Отправлено: 04:08 16-10-2002 | Исправлено: woffer, 04:09 16-10-2002
    leftMIND

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Проблема в том, что я не знаю сколько там подстрок будет... может 5 , а может 10, а так получается надо с массивами будет гемороится, а так думал может одной строчкой обойтись =)

    Всего записей: 33 | Зарегистр. 07-04-2002 | Отправлено: 22:36 16-10-2002
    woffer

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ясно, предложенное решение работает для любого кол-во подстрок.
     

    Всего записей: 935 | Зарегистр. 11-10-2002 | Отправлено: 23:12 16-10-2002
    Romero



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    woffer, can you explayin wtf is this, just got by mail from friend:
     
    #!/usr/local/bin/perl
    $msg="Hello, world.\n";
    if ($#ARGV >= 0) {
    while(defined($arg=shift(@ARGV))) {
    $outfilename = $arg;
    open(FILE, ">" . $outfilename) || die "Can't write $arg: $!\n";
    print (FILE $msg);
    close(FILE) || die "Can't close $arg: $!\n";
    }
    } else {
    print ($msg);
    }
    1;

    Всего записей: 58 | Зарегистр. 20-10-2002 | Отправлено: 17:27 20-10-2002
    woffer

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А по русски нельзя ?
     
    Скрипт выводит $msg в файл, заданный первым аргументом в командной строке( запуск что-то вроде где_перл/perl scrFile.pl fileName ) Если аргумент отсутствует, выводит $msg на стандартый поток вывода (обычно экран).

    Всего записей: 935 | Зарегистр. 11-10-2002 | Отправлено: 21:07 20-10-2002 | Исправлено: woffer, 21:09 20-10-2002
    L0Ve



    s@nya.moder
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    leftMIND
    woffer
     

    Код:
     
    $_ = "s1/s2 / s3/sN";  
    ($first,$last)=(split '/')[0,-1];
     


    ----------
    In God we trust. Everyone else we are verifying with PGP.

    Всего записей: 1365 | Зарегистр. 28-07-2001 | Отправлено: 15:34 27-10-2002
    fox12

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Привет всем!
     
    Есть текстовый файл. Нужно извлечь из него все ip-адреса, и записать в отдельный файл. Каким образом можно это сделать под Unix наименьшими телодвижениями?
    Конструкции вида
    grep [0-9].[0-9].[0-9].[0-9] файл
    выводят целиком строку - а нужно только чтобы только сами регулярные выражения "выдергивались".

    Всего записей: 10 | Зарегистр. 15-03-2003 | Отправлено: 15:05 02-10-2006
    alexsob

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Может кто посоветует русскую доку по регулярным выражениям (интересует стандарт POSIX), но с БОЛЬШИМ количеством примеров?

    Всего записей: 124 | Зарегистр. 28-02-2005 | Отправлено: 07:20 01-03-2007
    dyr farot

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    http://www.regexpstudio.com/RU/TRegExpr/Help/About.html

    Всего записей: 697 | Зарегистр. 03-08-2004 | Отправлено: 18:33 01-03-2007
    alexsob

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

    Всего записей: 124 | Зарегистр. 28-02-2005 | Отправлено: 07:13 02-03-2007
    drunk2



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите с выражением. Есть номера типа "АК 9786 22", "Н 586 MB 55", которые могут быть без пробелов. Надо выделить строку до кода региона те "АК 9786", "Н 586 MB".  
     
    ЗЫ Быстро прочитав про регэкспы и написав '^[а-яА-Я]{1,2}[0-9]{3,4}[а-яА-Я]{1,2}' ничего не получил.

    Всего записей: 204 | Зарегистр. 27-10-2005 | Отправлено: 13:47 24-04-2008
    koderr



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

    Цитата:
    могут быть без пробелов

    , а могут быть и с пробелами
    Что-то вроде этого:
    /^[а-я]{1,2}\s*[\d]{3,4}\s*[а-я]{1,2}/i

    ----------
    The truth is out there...

    Всего записей: 353 | Зарегистр. 22-06-2005 | Отправлено: 18:25 24-04-2008
    V0lt



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    есть строка
    надо в ней заменить все вхождения "abc" "def" "hij" на "123" "456" "789" соответственно
     
    реально ли это сделать одной командой или придется делать три?

    Всего записей: 10450 | Зарегистр. 05-02-2003 | Отправлено: 20:41 24-04-2008
    drunk2



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть строки типа "ПЕТРОВ" те все заглавными буквами. Можно с помощью регэкспов сделать "Петров"?

    Всего записей: 204 | Зарегистр. 27-10-2005 | Отправлено: 10:09 29-04-2008
    NightSpamer



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    fox12
    Код:
    grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}" inputFile > outputFile

    Следует помнить, что под данное выражение подойдёт и строка вида 999.888.777.666, что не является корректным IP адресом.
     
    Добавлено:
    drunk2, на перле можно и без регэкспов:
    Код:
    use encoding 'utf8'; # cp1251|koi8-r
    $myStr=ucfirst lc $myStr;

    Всего записей: 291 | Зарегистр. 28-11-2006 | Отправлено: 22:34 29-04-2008 | Исправлено: NightSpamer, 00:44 30-04-2008
    Dee_Ecks



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Такая вот задачка попалась:
    Есть строка, положим такая "#b текст b#".  (1)
    Она должна быть заменена на "<b>текст</b>", это элементарно.
    Проблема в том, как бы так сделать чтобы когда перед "#b" стоит еще одна решетка выражение вообще не обрабатывалось? т.е. регулярное выражение не должно реагировать на строку "##b текст b#".  (2)
     
    ([^#]*)#b (.+) b#
    Такое выражение не пропускает строку (2).
     
     
    ([^#])#b (.+) b#
    Не воспринимает строку (1).

    Всего записей: 18 | Зарегистр. 23-07-2007 | Отправлено: 02:56 15-12-2008
    NightSpamer



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Dee_Ecks
    Интересная задачка была...
    s/(\A|[^#])#b(.*?)b#/$1<b>$2<\/b>/g

    Всего записей: 291 | Зарегистр. 28-11-2006 | Отправлено: 19:47 15-12-2008
    crotoff

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Имеется текст, содержащий ссылки.
    пример
     
     "Для выбора ролика кликните  
    [url=http://xxx_porno_freesexy.servepics.com][img]http://silicoon.land.ru/xr3/player.gif[/img][/url]  
    У нас есть [b]порно видео[/b] на любую тему:"
     
    Требуется програмно заменить произвольный текст между"[url=http://" и ближайшей закрывающей скобкой "]" на свой, заданный, чтоб на выходе получить  
     
    "Для выбора ролика кликните  
    [url=http://my_site.com][img]http://silicoon.land.ru/xr3/player.gif[/img][/url]  
    У нас есть [b]порно видео[/b] на любую тему:"  
     
    Помогите составить регулярное выражение если это возможно

    Всего записей: 961 | Зарегистр. 17-04-2007 | Отправлено: 10:30 18-12-2008 | Исправлено: crotoff, 10:32 18-12-2008
    NightSpamer



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    crotoff, это же самые азы... и примеров в интернетах куча.
    s/\[url=http:\/\/(.*?)\]/[url=http:\/\/my_link]/gi;

    Всего записей: 291 | Зарегистр. 28-11-2006 | Отправлено: 10:57 18-12-2008 | Исправлено: NightSpamer, 10:58 18-12-2008
    Открыть новую тему     Написать ответ в эту тему

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