Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.118.30.253] |
|
Страницы: (4) 1 2 [3] 4 все ( Перейти к последнему сообщению ) |
Сообщ.
#31
,
|
|
|
Это позволит обрабатывать ситуацию, когда после равенства нет ни одного символа. Вариант же с .+? предполагает, что после знака равенства будет не менее одного символа.
|
Сообщ.
#32
,
|
|
|
Цитата SiMM, 18.11.04, 15:50 Это позволит обрабатывать ситуацию, когда после равенства нет ни одного символа. и? Если там не будет, то он будет считать что знака "ровно" нет вообще? |
Сообщ.
#33
,
|
|
|
Цитата Song, 18.11.04, 18:02 Если там не будет, то он будет считать что знака "ровно" нет вообще? Нет, просто regexp не пройдет. |
Сообщ.
#34
,
|
|
|
Дык я так и не понял.
Что лучше Цитата SiMM, 18.11.04, 13:31 .*? или Цитата Mastilior, 18.11.04, 13:31 [^\]]*? ? |
Сообщ.
#35
,
|
|
|
Лучше то, что работает всегда У любой задачи может быть множество решений - определить лучшее из них может быть ещё более сложной задачей, чем найти само решение Плюс ко всему - на вкус и цвет...
|
Сообщ.
#36
,
|
|
|
Цитата Mastilior, 18.11.04, 16:19 Нет, просто regexp не пройдет. пишу регулярку с .*?: preg_replace( "#\[img\s*=\s*(.*?)\s*\](.*?)\[\/img\]#ie" и тег типа [имг=] проходит |
Сообщ.
#37
,
|
|
|
Собственно, я того и добивался, чтобы он проходил, но с пустым $1. А чего добиваетесь вы - мне не известно - вы же всех возможных ситуаций и необходимого в них поведения не указали.
Кстати, вариант с .+? вообще не будет обрабатывать строчку или же будет глючить, например, в следующем случае: echo preg_replace( "#\[img\s*=\s*(.+?)\s*\](.*?)\[\/img\]#ie","'alt=$1\turl=$2\n'",'[img=]url1[/img][img]url2[/img]'); |
Сообщ.
#38
,
|
|
|
Цитата Song, 18.11.04, 23:15 и тег типа [имг=] проходит Проходит, потому что везде стоит * (есть или нет). Если бы стоял +, то не проходил бы... |
Сообщ.
#39
,
|
|
|
понял, пасиб.
Добавлено Цитата SiMM, 18.11.04, 21:52 Собственно, я того и добивался, чтобы он проходил, но с пустым $1. А чего добиваетесь вы - мне не известно - вы же всех возможных ситуаций и необходимого в них поведения не указали. Просто я ещё в 20-ом сообщении этот вариант сам сделал. Поэтому и подумал, что мы окончательно к чему-то другому пришли, короче запутался. |
Сообщ.
#40
,
|
|
|
Это опять я
Два вопроса: 1) наша устаканившаяся регулярка preg_replace("#(\[code(?:\=[a-z]+)?\])[\n\r]*(.*?)\s*(\[/code\])#si", не работает с тегом коде=СиШарп: [СODE=C#] test [/СODE] = test 2) Не получается отследить 3 числа после quote: [ quote=name, время, id ] quote [ /quote ] Пробую так: preg_replace( "#\[quote=([^\]]+?),([^\]]+?),([^\]]+?)\]#ie", "func('имя', 'время', 'id', почему-то время и id объединяются в один 3-ий параметр. |
Сообщ.
#41
,
|
|
|
1)
preg_repladece("#(\[code(?:[^\]]+)?\])[\n\r]*(.*?)\s*(\[/code\])#si", 2) preg_replace("#\[quote=([^,]+),([^,]+),([^\]]+)\]#ie", |
Сообщ.
#42
,
|
|
|
1) спасибо большое, работает
2) без изменений, всё также в 3-ем параметре вырезается и время и id: "время, номер" |
Сообщ.
#43
,
|
|
|
2) Не воспроизводится.
$str = '<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <span class='tag-quote__quote-info'>name,время,id</span><div class='quote '>quote</div></div>'; echo preg_replace("#\[quote\=([^\]]+?),([^\]]+?),([^\]]+?)\]#ieU", "'$1_$2_$3'",$str); |
Сообщ.
#44
,
|
|
|
Цитата SiMM, 26.11.04, 22:12, 524858 2) Не воспроизводится. Это что значит? Это что не работает вариант Микса или это мне относится, не понял? Добавлено SiMM, получилось вот чего: Цитата name_время_idquote[ /quote ] Добавлено Понял! У меня запятых 4 штуки получается. Короче мне надо чтобы [q=Song, 26.11.04, 22:13, 524860]то что не работает вариа[/q] красная была $1 синяя была $2 зелёная была $3 |
Сообщ.
#45
,
|
|
|
Song, не воспроизводится - значит, что описанная вами проблема не воспроизводится у меня (скрипт я привёл). Подобная фраза - повод задуматься и дать реальный рабочий пример (входные условия), результат его работы и ожидаемый результат работы.
PS: ну так и добавьте дополнительный фактор в регулярник, чтобы он "захватывал" последний параметр в $3, либо же "хватал" в $2 запятую. |