Здравствуйте, greek, Вы писали:
G>Необходимо составить регулярное выражение, которое искало бы отсутствие строки в тексте... G>то есть, что то вроде "НЕ (искомая строка)" G>как сделать отрицание?
это зависит от языка, регулярное выражение изменять не обязательно, наример в Perl:
if ($str =~ s/<regexp>/) { ... } # истина при соответствии регулярному выражениюif ($str !~ s/<regexp>/) { ... } # истина при несоответствии регулярному выражению
Здравствуйте, anonymous, Вы писали:
A>Здравствуйте, greek, Вы писали:
G>>Необходимо составить регулярное выражение, которое искало бы отсутствие строки в тексте... G>>то есть, что то вроде "НЕ (искомая строка)" G>>как сделать отрицание?
A>это зависит от языка, регулярное выражение изменять не обязательно, наример в Perl: A>
A>if ($str =~ s/<regexp>/) { ... } # истина при соответствии регулярному выражению
A>if ($str !~ s/<regexp>/) { ... } # истина при несоответствии регулярному выражению
A>
Фишка в том, что мне надо создать именно регулярное выражение, а не пользоваться языковыми конструкциями.
Здравствуйте, ЖуК, Вы писали:
ЖуК>Здравствуйте, greek, Вы писали:
G>>Фишка в том, что мне надо создать именно регулярное выражение, а не пользоваться языковыми конструкциями.
ЖуК>
ЖуК>/[^(str|foo|bar)]/
ЖуК>
Не понял, бучер, ты с чем не согласен? С тем, что [^] — отрицание в регекспах? Читай маны, бучер. Тебе кажется, что ^ — признак начала строки? Так вот — [^ — отрицание.
ЖуК>Не понял, бучер, ты с чем не согласен? С тем, что [^] — отрицание в регекспах? Читай маны, бучер. Тебе кажется, что ^ — признак начала строки? Так вот — [^ — отрицание.
отрицание только в классах символов... твое выражение интерпретируется как "стока не содержит ни одного из символов [()|abforst]"...
ЖуК>Не понял, бучер, ты с чем не согласен? С тем, что [^] — отрицание в регекспах? Читай маны, бучер. Тебе кажется, что ^ — признак начала строки? Так вот — [^ — отрицание.
вы хотите сказать, что такой регэксп значит — "истина, если в строке нет таких слов"?
ЖуК>Не понял, бучер, ты с чем не согласен? С тем, что [^] — отрицание в регекспах? Читай маны, бучер. Тебе кажется, что ^ — признак начала строки? Так вот — [^ — отрицание.
ЖуК>>Не понял, бучер, ты с чем не согласен? С тем, что [^] — отрицание в регекспах? Читай маны, бучер. Тебе кажется, что ^ — признак начала строки? Так вот — [^ — отрицание.
Здравствуйте, greek, Вы писали:
G>Фишка в том, что мне надо создать именно регулярное выражение, а не пользоваться языковыми конструкциями.
а чем вызвано нежелание пользоваться языковыми конструкциями?
Здравствуйте, butcher, Вы писали:
B>Здравствуйте, greek, Вы писали:
G>>Фишка в том, что мне надо создать именно регулярное выражение, а не пользоваться языковыми конструкциями. B>а чем вызвано нежелание пользоваться языковыми конструкциями?
Да мне просто надо настроить движек спайдера, поэтому составить рег выражение — быстрее, чем вникать в логику реализации ...
Здравствуйте, greek, Вы писали:
G>Да мне просто надо настроить движек спайдера, поэтому составить рег выражение — быстрее, чем вникать в логику реализации ...
ошибаешься, все наоборот...
Re[5]: регулярное выражение : отрицание строки
От:
Аноним
Дата:
08.07.04 12:27
Оценка:
Здравствуйте, greek, Вы писали: G>Да мне просто надо настроить движек спайдера, поэтому составить рег выражение — быстрее, чем вникать в логику реализации ...
простите, что не в тему, но что такое спайдер, зачем он нужен и чем хорош?
Здравствуйте, butcher, Вы писали:
B>Здравствуйте, ЖуК, Вы писали:
ЖуК>>>
ЖуК>>>/[^(str|foo|bar)]/
ЖуК>>>
ЖуК>>Не понял, бучер, ты с чем не согласен? С тем, что [^] — отрицание в регекспах? Читай маны, бучер. Тебе кажется, что ^ — признак начала строки? Так вот — [^ — отрицание. B>вы хотите сказать, что такой регэксп значит — "истина, если в строке нет таких слов"?
Здравствуйте, anonymous, Вы писали:
A>Здравствуйте, greek, Вы писали:
G>>Да мне просто надо настроить движек спайдера, поэтому составить рег выражение — быстрее, чем вникать в логику реализации ...
A>ошибаешься, все наоборот...
из чего сделан подобный вывод не ясно
А>простите, что не в тему, но что такое спайдер, зачем он нужен и чем хорош?
спайдер — паук.
Лазит по ссылкам на сайте и индексирует контент.
По этим данным потом осуществляется поиск по сайту и выдача ссылочек, на страницах которых была найдена искомая фраза.
Тот который я сейчас настраиваю — Yader, написанный на asp
Здравствуйте, greek, Вы писали:
G>Вопрос остается в силе... G>правильное решение так и не было высказано
ИМХО, назначение регулярных выражений — поиск совпадения, а не наоборот
Когда-то давно я тоже озадачивал себя такой проблемой, но решения так и не нашёл..
Возможно конечно, что решение и есть, но в данном случае, ИМХО, проще воспользоваться конструкцией языка.
Здравствуйте, butcher, Вы писали:
B>Здравствуйте, greek, Вы писали:
G>>Вопрос остается в силе... G>>правильное решение так и не было высказано B>ИМХО, назначение регулярных выражений — поиск совпадения, а не наоборот B>Когда-то давно я тоже озадачивал себя такой проблемой, но решения так и не нашёл.. B>Возможно конечно, что решение и есть, но в данном случае, ИМХО, проще воспользоваться конструкцией языка.