|
Во всеми любимом инструменте разработчиков 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}\(руб\.\)
Прилагаю скриншот окошка Homesite, в котором все цены заменяются на 0.
Это делается с помощью Extended Replace и галочки Regular expressions справа.
Екатерина, веб-мастер лаборатории СЕОмакс
|
Архив... что было раньше...в поисковиках
Интернет-мастеринг на сайте SEOmax
|
|