|
|
|
| Есть строка например -
Ваня кушал груши и смотрел телевизор
|
на выходе нужно
<span>Ваня кушал</span> груши и смотрел телевизор
|
| |
|
|
|
|
|
|
|
для: admiral
(17.02.2012 в 06:06)
| |
<?
$a = "Ваня кушал груши и смотрел телевизор";
echo preg_replace("/(ваня кушал)(.+)/iu","<span>\\1</span>\\2",$a); //u- нужно убрать, если кодировка не utf-8
?>
|
| |
|
|
|
|
|
|
|
для: admiral
(17.02.2012 в 06:06)
| |
<?php
$a = "Ваня кушал груши и смотрел телевизор";
echo preg_replace("#^([^\s]+\s+[^\s]+)#isu","<span>$1</span>",$a); //u- нужно убрать, если кодировка не utf-8
?>
|
| |
|
|
|
|
|
|
|
для: Sfinks
(17.02.2012 в 11:23)
| | можете пожалуйста объяснить, почему имеено так нужно делать? Из этого шаблона понял только '^'(в начале строки), а что это [^\s]? Любой символ кроме заэкранированного s? | |
|
|
|
|
|
|
|
для: ladan
(17.02.2012 в 12:36)
| | Объясняю разницу между моим и вашим вариантами:
1. (очевидно) Если строка будет
Петя кушал груши и смотрел телевизор
| то ничего не произойдет.
2. (чуть менее очевидно)
Ваня кушал груши и смотрел телевизор
| то тоже ничего не произойдет
3. (еще менее)
Вчера Ваня кушал груши и смотрел телевизор
| у вас выдаст
Вчера <span>Ваня кушал</span> груши и смотрел телевизор
| а нужно ПЕРВЫЕ слова.
Кроме того нужно 2 ЛЮБЫХ ПЕРВЫХ слова, а не ваня кушал
Теперь о моем РВ....
Сразу забыл, но еще проще его записать так:
и оно же по частям:
^ - начало строки
\s - любой пробельный символ
\S - любой НЕ пробельный символ
s - исходный текст может быть многострочным
u - utf8
|
| |
|
|
|
|
|
|
|
для: Sfinks
(17.02.2012 в 15:00)
| | Спасибо, понятно и доступно объясняете :) а в чем разница $1 и \\1? | |
|
|
|
|
|
|
|
для: ladan
(17.02.2012 в 15:55)
| | >а в чем разница $1 и \\1?
Это одно и тоже, просто последовательности, начинающиеся с $ в строках с двойными кавычками воспринимаются как PHP-переменные, значения которых нужно подставить, \\ тоже бывает нужно экранировать, количество этих символов разнится от типа кавычек и операционной системы... В цивилизованных языках этих проблем нет, так как в регулярных выражениях просто не используются кавычки, а в PHP вы сами выбираете какой кактус вам больше нравится кусать :) | |
|
|
|
|
|
|
|
для: cheops
(17.02.2012 в 16:09)
| | :) ясно | |
|
|
|