|
|
|
| Есть рег.выражение:
<?
$gg=preg_replace("/$arr[$i](\w+)[\s]/isU"," <b>$a\\1</b> ",$gg);
?>
|
есть слово "школа", соответсвующее переменной $a. автоматом убирается окончание в слове(уже сделано)
Так вот, если переменной будет соответствовать значение "школе" или "школьный" или "школьник", то рег.выражение с радостью обработает...
но если переменной будет соответствовать значение "предшкольный", то всё стопорится и не обрабатывается приставка "пред". я пробовал поставить спереди рег.выр-я что-то вроде [\s](\w+), то не обрабатываются слова, где нет приставок...
задача: нужно, чтобы рег.выражение соответствовало словам, у которых может быть приставка и не может быть её, т.е. слова "школьный" и "дошкольный" обрабатывались одинаково, иначе говоря была предусмотрена вероятность существования и несуществования приставки относительно слова "школа" в данном примере. | |
|
|
|
|
|
|
|
для: BAHO
(21.03.2006 в 16:25)
| | я просто в ауте, мне серьёзно нужно пособие по рег.выражениям, постоянно теперь их использую и регулярное ображение на этот форум хлопотно для меня и не очень удобно с моей стороны взваливать свою работу на других... книгу по рег.выржениям пока приобрести не могу, нужно электронное пособие.... | |
|
|
|
|
|
|
|
для: BAHO
(21.03.2006 в 16:31)
| | насчет книжки точно сказать не могу, где взять, но могу посоветовать посмотреть здесь:
http://forum.vingrad.ru/index.php?showtopic=34297 - там мноооого всего :))
и насчер выражения:
попробуй сделать как ты уже делал только после w поставь звездочку :) [\s](\w*)
+ - чтобы приставка была хотя бы один раз
* - ноль и более
? - ноль или один раз
(буквы скорее всего в данном примере, а не сама приставка) | |
|
|
|
|
|
|
|
для: BAHO
(21.03.2006 в 16:31)
| | В качестве книги можно посоветовать Регулярные выражения (Дж. Фридл.) - лучшее что есть на сегоняшний момент. Регулярные выражения - это не придаток - это независимый мини-язык, который следует изучать с той же серьёзностью, что и основной язык. | |
|
|
|
|
|
|
|
для: cheops
(22.03.2006 в 00:12)
| | :)))))))))))))))
уважаемый cheops! в одной из предыдущих моих тем вы также ответили мне про енту книгу, а в первом посе\те я именно её и имел в виду :)))))
вопрос теперь такой (а то что-то со звёздочкой есть небольшие проблемы)....
как сделать так, чтобы жирным виделилось всё слово, в которое входит например слово "школ" (енто слово "школа" без окончания). но при этом надо учитывать, что регистр букв в оригинального слова не должен меняться (если были большие буквы, пусть большие и останутся) и что у слова может быть как приставка, так и окончание (надо предусмотерть все случаи), но при этом сразу после слова может стоять любой знак препинания, будь то точка или ещё что нить, плюс кавычки всякие, а перед словом может также находится кавычки или знаки препинания, но при этом енто слово может стоять в начале текста, так что спереди слова может быть просто пустота... аналогично и с концом текста.... | |
|
|
|
|
|
|
|
для: BAHO
(22.03.2006 в 12:20)
| | Простите, а чем Вам не нравится Фридл? | |
|
|
|
|
|
|
|
для: Trianon
(22.03.2006 в 12:26)
| | ни чем, я говорю, что просто сейчас не могу приобрести данную книгу. а вебмани средств пока маловато | |
|
|
|
|
|
|
|
для: BAHO
(22.03.2006 в 20:38)
| | Дж.Фридл
WinDjView (то чем смотреть) | |
|
|
|
|
|
|
|
для: BAHO
(22.03.2006 в 12:20)
| | Хм... попробуйте вот так
<?
$gg=preg_replace("/([\w]+)$arr[$i](\w+)[\s]/isU"," <b>\\1$a\\2</b> ",$gg);
?>
|
| |
|
|
|