![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Solid |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 3.11.2003 Где: Дома. Репутация: нет Всего: нет |
Есть маленькая, и в то же время, на первый взгляд, не разрешимая проблемка. Всё дело в регулярном выражении, а именно c функцией preg_replace()... Так что зарание прошу тех, кто плохо разбирается в регулярках, ничего не говорить, или советовать.
Есть данные, вида:
Например, запишем эти данные в переменную $string; Нужно обработать эту переменную при помощи регулярного выражения, что бы в последствие данные имели вид:
На это дело я сочинил следующий код:
и, к моему большому сожалению, в нём есть один баг. Видете в первой строчке me, да? и в конце стоит <текст>, так вот, реплэйс почему-то происходит до последней ">", а не до самой первой. В общем есть вопрос, как сделать так, что бы было правильно, как я описал? %) Это сообщение отредактировал(а) Solid - 3.11.2003, 23:33 |
||||||
|
|||||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
А если поставить не .* а [^\<]*
и всё получится ![]() P.S. Жадность алгоритма. P.P.S. Правда может \ ненужен Это сообщение отредактировал(а) Secandr - 3.11.2003, 21:37 |
|||
|
||||
Solid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 3.11.2003 Где: Дома. Репутация: нет Всего: нет |
Secandr:
Большое спасибо. Здесь всё конечно правильно, но у меня возникла ещё одна подковырка. В ХТМЛ символ "<" обозначается как "<". Значит мне нужно вставить не [^\<], а "<", но если вставить [^\<\;] то получится, что мы будем проверять каждый символ, и если например между <> будет отдельный &, l, t или ;, то, само собой, регулярное выражение нефига не заменит. Вопрос: как сделать регулярное выражение целостным? Из вышеобъяснённого всё должно быть понятно, вроде. |
|||
|
||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
попробуй [^(\<\;)]
Правда я такого не делал. |
|||
|
||||
Solid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 3.11.2003 Где: Дома. Репутация: нет Всего: нет |
Пожалуйста удалите две предыдущущие записи.
Secandr: хехе, у меня идентичное мышление с тобой. Я точно так же попробовал, но вот не сработало. Это абсолютно некакой разницы не имеет с тем, что я предлагал в предыдущем посте. Может быть всётаки есть какие-нибудь другие версии? Я даже не поленюсь их опробовать. |
|||
|
||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
Есть бредовое предложение: поменять все "<" обратно на "<"
![]() А потом вернуть "<" ![]() Хотя это должно работать по другому. |
|||
|
||||
Solid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 3.11.2003 Где: Дома. Репутация: нет Всего: нет |
Secandr: насамом деле бредовое. Мне бы что попроще ;)
|
|||
|
||||
Solid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 3.11.2003 Где: Дома. Репутация: нет Всего: нет |
OFFTOPIC: сделайте удаление собственных сообщений в форуме, а так же удалите 2 предыдущих (гостевых) сообщения.
Это сообщение отредактировал(а) Solid - 7.11.2003, 00:52 |
|||
|
||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
Solid Идея, то бредовая, но иногда прокатывает.
У меня почемуто .* иногда не работает, так приходится делать [^\r]* ![]() ![]() ![]() Есть тут люди знающие регулярные выражения ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |