|
|
|
|
|
для: stasmus
(30.08.2007 в 14:29)
| | Возможно вас заинтересует книга http://www.softtime.ru/info/fridl.php. | |
|
|
|
|
|
|
|
|
для: Unkind
(29.08.2007 в 21:05)
| | спасибо, а откуда взята эта инфо? Можно линк желательно на рус | |
|
|
|
|
|
|
|
для: stasmus
(29.08.2007 в 20:41)
| | Ну условия на практике могут быть нужны тогда, когда хочется достать какое-то значение и обработать его preg_replace'ом, не задевая при этом другие данные. Просто указать, что дальше/прежде должно быть, но не заносить в строку совпадения. Например,
<?php
$string = "abc";
$string = preg_replace("/b(?=c)/", "", $string);
echo($string); //ac
?>
|
| |
|
|
|
|
|
|
|
для: Unkind
(29.08.2007 в 20:18)
| | а зачем использовать такие lookahead-условия впринципе? и что будет если например так
(?=a) ? Какой смысл такой записи? | |
|
|
|
|
|
|
|
для: stasmus
(29.08.2007 в 19:29)
| | > разъясните логику если не трудно
Здесь используются три lookahead-условия, которые позволяют "заглянуть вперед".
Такое условие записывается так: (?=RegularExpression)
Есть еще одно lookahead-условие: (?!RegularExpression), которое позволяет наоборот сказать "найти то, за которым не следует вот это".
Также существует два lookbehind-условия.
(?<RegularExpression) и (?<!RegularExpression).
[^a]*, [^b]* и [^c]* позволяют в данном случае не обращать внимания на посторонние символы, и, собственно, не обращать внимание на порядок этих букв - a, b, c. | |
|
|
|
|
|
|
|
для: SHAman
(28.08.2007 в 16:32)
| | >echo preg_match('/(?=[^a]*a)(?=[^b]*b)(?=[^c]*c)/',$text);
разъясните логику если не трудно | |
|
|
|
|
|
|
|
для: SHAman
(28.08.2007 в 16:31)
| | Я думал, вы уже решили .. Это задача на опережающие положительные утверждения
$text = "alphabetical order";
echo preg_match('/(?=[^a]*a)(?=[^b]*b)(?=[^c]*c)/',$text);
|
| |
|
|
|
|
|
|
|
для: stasmus
(28.08.2007 в 16:24)
| | Да, ты прав. Я не все варианты перебрал:) В любом случае, твоя быстрее. Я же говорю - протупил:) | |
|
|
|
|
|
|
|
для: Faraon
(28.08.2007 в 16:29)
| | Faraon, это было мое первое предложение:) Это самое эффективное скорее всего:) Но интерес сделать это в одну регулярку:) | |
|
|
|
|