Выражение: строка в которой нет заданного слова

MiksIr

miksir@home:~$
Конкретная задача решается через RewriteCond который умеет отрицание.
Абстрактная задача про регекспы решается... ну наверно так: /^((?<!gif).(?!gif))+$/
 

Anarki

Новичок
PHP:
<?php
$text =<<<TXT
строку в которой нет сочетания gif
в этой строке точно нет сочетания
скачал image.gif и там вирус оказался!
TXT;

$lines = explode("\n",$text);
$foo = 'gif'; // запрещенное слово!
$regexp = '/^(?:(?!'.$foo.').)*$/s';

foreach($lines as $line) {
    if (preg_match($regexp,$line)) {
        echo $line."\n";
    }
}
Немного уличной магии.
 

dimagolov

Новичок
Армян, он сам сказал что "Нужно было написать RewriteRule". Там есть отрицание патерна, а универсальный regexp там лишний. Но китайских комсомольцев же трудности не смущают?
 

KolyaA

Новичок
Армян
И готовое решение сразу привели тут
Это уже армянская хитрость какая-то :) . Решение привели не сразу, а только два сообщения назад. Из-за чего весь сыр-бор.
Кстати прикольный ты $regexp написал. :)

dimagolov

RewriteRule пиcался для IIRF, а не для апача. Поэтому я сразу про это и не упоминал - чтобы не путать людей. А в IIRF по ходу используется для написания RewriteRule обычный PCRE. Так что китайские комсомольцы ни при чём.

Решение Анарки и Миксера проверил. Вроде оба работают.

Всем спасибо за посильную помощь!
 

Армян

Новичок
KolyaA
Как говорится "Самый хитрый из армян, наш Артурка Тербалян" :D

Рега да, грустненькая получилась :)
 
Сверху