Полезные советы для обслуживания веб сайта и работы с ним


Как сделать замену на сотнях страниц сайта, если заменяемые куски находятся в одном месте, но отличаются (например удалить с сайта все цены?)

Во всеми любимом инструменте разработчиков Dreamweaver (как и в других редакторах) есть инструмент "Найти заменить" - можно использовать именно его... НО КАК?

Для замены части кода, в котором есть различия используют "регулярное выражение". Регулярное выражение - это такая строчка в поиске, где есть не только конкретные символы, но и метасимволы - они означают, что нужно искать, например, любую цифру в данном месте, любую букву, границу слова, или начало строки, табуляцию и т.д. Список спецсимволов можно посмотреть напр. тут: http://www.sreda.ws/s2/s2-5.htm или где угодно в интернете.

Проблема заключается в том, как написать внутри строки эти спецсимволы, чтобы редактор Homesite или Dreamweaver не принял их за часть самой строки? Там же могут быть и теги, и звездочки, и всякие скобки - как же писать спецсимволы, если они выглядят точно так же как то, что мы ищем? Например спецсимвол "точка" - . я не могла понять, как же можно писать точку, если в моем предложении, которое я ищу и так есть точка?

Ответ очень прост, и после этого можно легко писать любые регулярные выражения: если у вас в строке есть символ, который совпадает со спецсимволом, то перед ним надо поставить \
Все остальные символы - просто пишем как обычно, а в нужном месте ставим оператор, который требуется. Вот и все.

Пример: Ищем строку "Цена этого товара: 1435 (руб.)"
Вместо 1435 может быть любая цена (от пробела или 0 до, скажем, 10 000).

Мы знаем, что точка на языке рег. выражений - любой символ. Поэтому вместо цифр ставим четыре точки. А после "руб" надо, чтобы была точка, поэтому ставим \. Скобки - это тоже спецсимволы, поэтому чтобы сохранить их - ставим перед ними тоже \
Получается:
Цена этого товара: .... \(руб\.\)
Эта строка поможет найти все такие строки с ценой из четырех цифр.

А что делать, если там в цене будет 5 цифр? Или одна?
Есть такая функция {m,n} - предыдущий символ может встретиться от m до n раз.
В нашем случае - любая цифра может встретиться от 0 до 5 раз например. Если 0 - то цена не указана, если 5 - то цена типа 12550. Еще могут быть пробелы 12 550. Пишем: .{0,6} - означает "любой символ может встретиться от 0 до 6 раз" 6 потому, что люди часто ставят пробелы внутри цены для удобства.
Получается:
Цена этого товара: .{0,6} \(руб\.\)

Чтобы еще упростить поиск, можно вообще оставить только первое слово строки "Цена" и последнее слово "(руб.)"
То, что между ними, можно искать с пом. регулярных выражений таким же способом, просто символов будет не 6 а немного больше. Возьмем к примеру 20. Пробелы тоже учитываются.
Получается:
Цена.{0,20}\(руб\.\)


Екатерина,
веб-мастер лаборатории СЕОмакс