Так есть ли у вас какая то цель или нет? Если интерес у вас чисто академический - то исключить строку можно, но работать будет медленно, нестабильно, и вообще так нормальные люди не делают. Можете прочитать это - http://ru2.php.net/manual/en/regexp.reference.assertions.php Если же задача реальна, то показывайте ее Символ ^ внутри [] исключает не один символ, а набор символов, и это вполне ожидаемая реакция, читайте документацию
Gifts спасибо за помощь, но не надо меня постоянно отправлять к документации я не из тех, кто создает тему с проблемой, как только эта проблема возникла я уже писал выше, что нагуглил конструкцию foo(?!bar), но использовать не получилось сейчас попробовал ещё раз, добился такого рабочего варианта: PHP: /(.*data (?!batch).*)/ test data batch bold test data botch bold // достанет только это но есть ещё одно неудобство - перед (?!batch) обязательно должно быть слово /(test.*(?!batch).*)/ - уже не работает с этим можно что-то сделать?
фильтрует ссылки от левых символов до / if (preg_match('/([:\/-\d\wа-я\.]+[\d\wа-я]{2,6}\/[^\s]{5,}?)/', $res)) {echo('добавлено<br>');} else {echo('левая ссылка');} http://portal.opera.com/11111111111@#$%1.php такую должен добавить http://p''':,^&#$.ope'ra.c'om/111111111111.php такую нет пропускает ковычки итд,в чем косяк подскажите плиз
у меня вот вопрос(возможно не туда куда надо): есть например прег_матч_алл: PHP: preg_match_all("#<input.*name=\"(.*{$example}.*)\".*>#isU", $site, $username); вопрос в этом фрагменте: name=\"(.*{$example}.*)\" а если человек писавший данный инпут использовал не такие кавычки "..", а такие '..', но я об этом не знаю, то что делать? если не сработает с этими кавычками, надо создавать второй preg_match_all и уже с нужными кавычками? или можно поступить альтернативно, более правильно? может быть можно написать для этого какое-то условие: символ(кавычка) может быть либо таким(") либо сяким('). Но как? я не могу найти никаких примеров для этого случая
спасибо, я уже как раз узнал). еще один вопрос: как написать: символ может быть, а может и не быть ? судя по всему вот так: [x,]
помогите достать из строки все ссылки и закинуть их в масив. вот мой код PHP: $res = file_get_contents('t.txt'); $links = preg_split('???', $res); не могу составить шаблон (((
как сделать так, чтобы например: PHP: <input name\"(.+)\".*> чтобы ".+" брало "всё", но только в том случае, если это "всё" не является определенным словом, которое я задам? или только таким способом можно это сделать?: PHP: for($i=0;$i<count($inputs);){ preg_match("#<input name\"(.+)\".*>#isU", $inputs[$i], $name); if($name!=="какое-то слово") break; else $i++; }
Nightmarе, попробуй еще так: PHP: preg_match("#http://([^<]*/[^<]*)[/,][^<]*#isU",$text,$matches); тоже нет времени тестить п.с. кстати, мой вопрос еще актуален (смотреть выше^)
PHP: RewriteRule ^register/+$ index.php?act=reg [L] RewriteRule ^rules/+$ index.php?act=rules [L] RewriteRule ^rememberpass/+$ index.php?act=rememberpass [L] RewriteRule ^add/+$ index.php?act=add [L] Есть такой .htaccess для ЧПУ. Но вот на поддомене вываливается 404 ошибка((( На основновном работает отлично(( Что поменять? , чтоб работало? Вот ошибка появляющаяся : Тоесть он в пути еще и папку приписывает (atest) это папка поддомена. а запрашиваю так atest.site.ru Начинает ругаться там,где начинает ЧПУ использоваться UPD Оказалось что мешает фаил .htaccess лежащий выше((( я думал,что последкющий отменяет предыдущий PHP: DirectoryIndex index.php ErrorDocument 404 404.php RemoveHandler .html AddType application/x-httpd-php .html AddHandler application/x-httpd-php .php .htm .html Вот его содержимое Может кто подскажет что в нем такого,что не работает ЧПУ? ( вроде ничего сверхЕстественного(
Подскажите регулярку под Code: <item id="26812807" art_id="951" expire="0" type_id="5" bpslot="0" cost="0" amount="0" flags="624" color="#55625d" race="0" level="0" obj_type="8" slots="0" slot_num="0" aslot="0" set_id="0" img="art/951.gif" strength_cur="0" strength_max="0" ><item id="26812807" art_id="9351" expire="0" type_id="5" bpslot="0" cost="0" amount="0" flags="624" color="#55625d" race="0" level="0" obj_type="8" slots="0" slot_num="0" aslot="0" set_id="0" img="art/951.gif" strength_cur="0" strength_max="0" > Надо выпарсить значение item id="" где art_id=951. Если пробую то выдаеться вся строка не только значение item id Code: preg_match_all('~item id="(.*)" art_id="951"~', $contents, $out);
PHP: $text = '<item id="26812807" art_id="951" expire="0" type_id="5" bpslot="0" cost="0" amount="0" flags="624" color="#55625d" race="0" level="0" obj_type="8" slots="0" slot_num="0" aslot="0" set_id="0" img="art/951.gif" strength_cur="0" strength_max="0" ><item id="26812807" art_id="9351" expire="0" type_id="5" bpslot="0" cost="0" amount="0" flags="624" color="#55625d" race="0" level="0" obj_type="8" slots="0" slot_num="0" aslot="0" set_id="0" img="art/951.gif" strength_cur="0" strength_max="0" >'; preg_match_all("#item id=\"(.*?)\" art_id=\"951\"#i",$text,$matches); echo $matches[1][0]; там просто $matches - массив массивов, там надо как с двумерным работать
Ищу регулярку для валидации md5 хэшей. '#^[0-9a-f]{32}$#i' не предлагать иначе в БД будет 0000000000000008f464da1f6727b5e
Подскажите как выпарсить данные между Code: <name><![CDATA[Техт]]></name> Если пробую так Code: preg_match_all('~<name><(.*)></name>~', $contents, $out); print_r($out); То получаеться Code: Array ( [0] => Array ( [0] => <name><![CDATA[Техт]]></name> ) [1] => Array ( [0] => ![CDATA[Техт]] ) ) А мне надо выпарсить только "Техт" Если пробую так то ничего не выходит Code: preg_match_all('~<name><![CDATA[(.*)]]></name>~', $contents, $out); print_r($out);