Помогите с регуляркой
Объясни ещё раз чего ты хочешь.
http://php.rinet.ru/manual/ru/reference.pcre.pattern.syntax.php
http://php.rinet.ru/manual/ru/reference.pcre.pattern.syntax.php
в строке есть некие фразы выделенные символами | в начале и в конце. Надо эти символы заменить на < в начале и > в конце
$s = preg_replace('/\|(.+?)\|/','<\1>',$s)
\|([^]*)\|/\<$1\>
прогонять до посинения
прогонять до посинения
а... если там вложенности нет, то убрать greedy, и достаточно одной таблэтки. 

не работает 

ЧТо значит "если там вложенности нет, то убрать greedy"?
Fixed
ну короче, то что написал там вопросительный знак -- это оно и есть.
значит, что как только найдёт текст удовлетворяющий выражению, сразу его "применит", а не будет искать текста подлиннее.
значит, что как только найдёт текст удовлетворяющий выражению, сразу его "применит", а не будет искать текста подлиннее.
Я уже потихоньку телепатом заделываюсь. 

во-во...
но всё-таки лучше не точку, а [^], а то не будет работать на фразах, которые через строчку перескакивают.
Тогда уж лучше
$s = preg_replace('/\|(.+?)\|/s','<\1>',$s) $s = preg_replace('/\|(.+?)\|/s','<\1>',$s) может лучше $s = preg_replace('/\|(.*?)\|/s','<\1>',$s) текст может же быть и пустым?
Оставить комментарий
Ivan826
надо в php сделать следующее:заменить в строке все вхождения вида |text| на <text>
Как это сделать?