Никогда не работал с регулярными выражениями и никак не могу выучить. А тут понадобилось кое-что парсить. Собсно вопрос вот в чем: надо достать из строки все, что соответствует даному шаблону: "сначала {{, потом любой текст или цифры, потом }}".
Помогите составить регэксп
/^{{*}}$/ - пробовал так - не получается
1. nulpatrol - 10 Июня, 2010 - 22:12:05 - перейти к сообщению
2. Мелкий - 10 Июня, 2010 - 22:30:23 - перейти к сообщению
любой текст - это .*
. - любой символ
* - любое количество предшествующего символа
. - любой символ
* - любое количество предшествующего символа
3. Rigiy - 11 Июня, 2010 - 08:18:05 - перейти к сообщению
Попробуй вот так. Сдесь говоритмя: Любой текст до первого вхождения {{, потом снова любой текст до первых }} и конец строки.
"/^.*?\{\{.*?\}\}$/"
если нужно весь текст который между {{ и }} то вот так:
/\{\{(.*?)\}\}/
"/^.*?\{\{.*?\}\}$/"
если нужно весь текст который между {{ и }} то вот так:
/\{\{(.*?)\}\}/
4. Phantik - 11 Июня, 2010 - 10:23:04 - перейти к сообщению
А в чем отличие между .* и .*?
Первое это любой символ 0 или сколько угодно раз. А символ '?' тут к чему?
Первое это любой символ 0 или сколько угодно раз. А символ '?' тут к чему?
5. movEAX - 11 Июня, 2010 - 12:18:47 - перейти к сообщению
Phantik пишет:
А в чем отличие между .* и .*?
Первое это любой символ 0 или сколько угодно раз. А символ '?' тут к чему?
Первое это любой символ 0 или сколько угодно раз. А символ '?' тут к чему?
По своей природе RE очень "жадные"
Т.е. если допустим парсить такой текст шаблоном {.*}:
Цитата:
{текст текст }текст2 текст2}
То результат будет:
Цитата:
текст текст }текст2 текст2
А вот если использовать шаблон {.*?} ( "?" - как бы делает RE мение жадными ), то результат будет таковым:
Цитата:
текст текст
За подробностями обращайтесь к мануалу. Там есть абсолютно все.
6. Joo - 11 Июня, 2010 - 13:51:11 - перейти к сообщению