Вопрос по рег. выражениям

Тема в разделе "PHP программирование", создана пользователем typak, 19 апр 2011.

Статус темы:
Закрыта.
  1. typak

    typak Гость

    Вообщем надо написать рег выражение такое шоб оно искало текст который находится вне тегов \[code\] код\[/code\]

    Есть выражение которое ищет текст заключонный между тегами \[code\] обрабатываемый текст\[/code\]
    вот оно $pattern = "#\[code\](.+)\[\/code\]#isU";

    Немогу никак сообразить как написать выражение для поиска текстя вне тегов \[code\]текст не обрабатывается \[/code\]

    Вот примерно такие выражения могут быть

    обр. текст \[code\]текст не обрабатывается \[/code\]обр. текст\[code\]текст не обрабатывается \[/code\]

    Еще вопросик по книгам сегодня был на книжной балке и прикупил книгу:
    "Регулярные выражения" Джеффри Фридл 3-здание 2008
    Продавец мужик знакомый хвалил типа книга бомба. Кто читал норм книга или нет.
    Дорогож стоит 30 доларов отдал. Короче на ней совы нарисованы. Была там еще одна книга там, там помоему крыса нарисованная здаровая такая, но то типа говорит практические примеры, а с совами типа учебник лутше учебник брать говорит тема типа сложная, да я и сам такого мнения чо лутше с учебника начинат. Ладно вообщем. Отзывы о книге кто читал можна писать сюда и стоит ли их Р.В. вообще учить?
     
  2. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    ^ - этот символ - это отрицание. т.е. все крмое паттерна. Сам сообразишь куда всунуть?)
    Книга.. А зачем? С регулярками все просто - там же в рамках одной статьи все вмещается. Лучше как раз прочитать теорию, из статьи типа такой и дальше наоборот практика. А книга
    Нахрена оно тебе?
    А ваще хорошая, да.
     
  3. typak

    typak Гость

    Да конечно знаю шо отрецание тока нетак все просто:

    1.$pattern = "#\[^[code\](.+)\[\/code\]]#isU"; отак пробовал выдает ошибку я тока без экрана пробовал понятно что ошибка была тока дошло
    2.$pattern = "#\[^code\](.+)\[^\/code\]#isU"; отак даже непробовал потому шо понятно шо нето, что нужно будет искать
    3.$pattern = "#\[^(code)(.+)\(\/code\)]#isU"; отак тоже пробовал нето ищет шо надо
    От щас тока писал и придумал как стоит попробовать вспомнил, что метасимволы если встречаются в страке, то их нужно экранировать. Вообщем отак попробую скорей всего правильно
    $pattern = "#[^(\[code\](.+)\[\/code\])]#isU", тока неуверен скобки нужны или нет( но если безскобок то скорее всего неправельно будет потому, что будет каждый символ исключатся, а нам нужно както их сгрупировать попробую отето.

    Да java мне и нафиг ненада

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

    Да и вообще со статьи чему там можно научится, тока синтаксис изучить, метасимволы, квантификаторы,модификаторы. мб ище там чо неупомню. Для того чтобы их на практике научится применять нужно разобрать неодин практический пример, где они применяются. Это тоже самое, что сказать студенту или ученику вот тебе теория, аксиомы, формулы, изучиш их, а потом дать ему задачки пусть решает, конечно он их нерешит потому, что некогда невидел как они решаются.
    Как можно применять регулярные выражения никада невидя как они применяются худо бедно зная синтаксис. Тут конечно перейти к практике будет очень сложно Ладно тут я фигни нагородил отвечу коротко по теме:

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

    А книгу купил потому, что хочу глубоко изучить не просто знать синтаксис но и свободно применять на практике, чтобы не задумываться как, то написать р.в. или как другое. Кароче мое ИМХО такое. Статьей можно дополнить, а без книги глубоких знаний небудет.
     
  4. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    И так, еще раз. Зачем?)

    Добавлено:
    Вроде похоже. Не понятно зачем только в круглые скобки берешь.
     
  5. typak

    typak Гость

    Та то лишнее конечно, там и perl и NET тоже есть PHP
    Наверно затем шо регулярные выражения применяются и там и там и там или они главным образом в Java применяются ?

    Да, а как же без круглых скобок тадаж обьединения небудет ну от типа так:
    [^abc] и от так [^(abc)] этож не тоже самое в первом случае будет исключатся и каждая буква а во втором случае ряд символов и то в подмаску попадают и вроде как и такие слова как abcbb и abc и kkkabcddd там еще наверно придётся помудрить с началом и концом строки (может быть и ошибаюсь но помоему так)

    мб правильно будет даже отак определить конец и начало строки:

    $pattern = "#[^($\[code\](.+)\[\/code\]?)]#isU или их может даже за скобками писать

    то надо пробовать на практике, что получится отетож от такие знания регулярных выражений почти никакие синтаксис вроде понятен, а так ли его писать суверенностью сказать тяжело. Отетож такое нерешительное применение их мне и ненравится хочется научится уверенно ими пользоваться, а не просто гадать.
     
  6. typak

    typak Гость

    Да и тут символы начала и конца перепутал сходу херню написал $ и ? вместо ^ и $

    $pattern = "#[^(^\[code\](.+)\[\/code\]$]#isU мб еще нужно и + добавить отак
    $pattern = "#[^(^\[code\](.+)\[\/code\]$]+#isU типо встречается хотябы 1 или больше раз
    не навепнр + лишний, а то оно строку без тегов не обработает лутше * а мож вообще ненужно не + и не *

    Регулярные выражения это бомба. :)
     
Загрузка...
Похожие Темы - Вопрос по рег
  1. ApplePen
    Ответов:
    0
    Просмотров:
    79
  2. gURaBA_N
    Ответов:
    3
    Просмотров:
    97
  3. kartaman
    Ответов:
    0
    Просмотров:
    128
  4. Peter
    Ответов:
    4
    Просмотров:
    527
  5. di0d_
    Ответов:
    1
    Просмотров:
    442
Статус темы:
Закрыта.

Поделиться этой страницей