![]() |
|
Модераторы: ginnie |
![]()
|
|
| ImSave |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 4.9.2009 Репутация: нет Всего: нет |
Всем привет. Подскажите новичку пожалуйста.
В переменной $c_cont содержится текст вида:
нужно текст между всеми тегами <a ...</a> заменить на слово: ссылка т.е. должно получится
|
||||
|
|||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 6 Всего: 39 |
Что может быть проще
|
|||
|
||||
| sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 1 Всего: 31 |
как же всем нравится использовать всякие символы за место слешей в качесве разделителей реджексов...
жаль вим тупит на таких конструкциях |
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 6 Всего: 39 |
Я обычно использую слеши. Но когда сами слеши встречаются в выражении, то дабы не плодить частокол, очевидно есть резон воспользоваться альтернативными разделителями.
|
|||
|
||||
| ImSave |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 4.9.2009 Репутация: нет Всего: нет |
Спасибо! а т.к. может встречаться и <A ...</A> то правильнее и быстрее ли будет вместо этих двух строк:
использовать:
?? |
||||||||
|
|||||||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 6 Всего: 39 |
В таком случаи я бы сделал так:
модификатор i - игнорировать регистр. |
|||
|
||||
| krypt3r |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 9.6.2009 Репутация: нет Всего: 16 |
И что вы этим кодом
получите? В переменной $c_cont у вас будет число произведенных замен в переменной $_. Поставьте тильду после знака равенства |
|||
|
||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Разве что символ '@' - не самый приятный разделитель. ИМХО, есть фигурные скобки. -------------------- менеджер по кодеврайтингу |
|||
|
||||
| ImSave |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 4.9.2009 Репутация: нет Всего: нет |
оно? Добавлено через 6 минут и 4 секунды
у вас есть другое предложение? можете пример для моего случая показать? |
||||||||
|
|||||||||
| krypt3r |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 9.6.2009 Репутация: нет Всего: 16 |
Если у вас исходный текст находится в переменной $c_cont, то Pfailed уже написал, как делается
Какой символ юзать, имхо, без разницы. Кому как нравится. В "классическом написании" будет так
С фигуристыми скобками =)
Это сообщение отредактировал(а) krypt3r - 11.11.2009, 14:03 |
||||||
|
|||||||
| ImSave |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 4.9.2009 Репутация: нет Всего: нет |
спасибо всем огромное! все получилось.
только перед </a> не должно быть пробела т.е.
и еще вопросик. Это оптимальный вариант в плане скорости??? |
|||
|
||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
пробелы я советовал бы обрабатывать через \s*. По своему опыту - это такой хитрый символ, что иной раз встречается там где казалось бы быть не должен, или наоборот, может и не оказаться где ожидалось. Добавлено через 1 минуту и 3 секунды А еще бывает, что иногда вместо одного пробела, иной раз может оказаться больше -------------------- менеджер по кодеврайтингу |
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: нет Всего: 50 |
||||
|
||||
| ImSave |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 4.9.2009 Репутация: нет Всего: нет |
ок. Попробую.
А можете привести ф-ю с помощью которой можно сравнить скорость работы этого. Ну типа:
до миллисекунд желательно...ну или как еще сравнить скорость выполнения этих вариантов. |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 1 Всего: 49 |
ImSave, попробуй
Но не думаю, что разница будет заметной. Это сообщение отредактировал(а) ginnie - 13.11.2009, 13:54 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Регулярные выражения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |