Удаление\Изменение тегов
#1
eacl
-
- Неактивные
- 31 сообщений


Отправлено 06 Сентябрь 2012 - 18:42
Это можно сделать в принципе в редакторе выполнить: замену <span class="textsize"> на <div class="textss"> ну ведь тогда не получиться заменить </span> на </div> вернее заменяться все закрывающие теги </span> на </div> а мне нужно только определенные, не все.
Что посоветуете?
- 0
#2
matroskin8
-
- Пользователь PRO
- 767 сообщений
Отправлено 06 Сентябрь 2012 - 20:38
Воспользоваться возможностями регулярных выражений.Что посоветуете?
В том же редакторе Notepad++ открываем меню "Поис - Замена", выбираем режим поиска "Регулярное выражение" и составляем регулярку, она будет такой (ее помещаем в поле "Найти"):
<span class="textsize">([^<>]+)</span>Ну а в поле "Заменить на" указываем на что меняем:
<div class="text1">\1</div>Все - жмем "Заменить все" и получаем количество произведенных замен.
Ниже, на всякий случай, скрины:
- 1
#3
eacl
-
- Неактивные
- 31 сообщений
Отправлено 06 Сентябрь 2012 - 22:36
Я смотрел во многих блокнотах, emeditor notepad в том числе но ничего так и не нашёл...
Про регулярку, что она существует в Notepad, вообще незнал, сократили там её еле найдеш, выдялить такое надо и по крупнее.
Уже даже вопрос сам по себе отпадает, как я вижу со скриншотов если между тегами спана есть текст то все ок, и заменяться только теги...?
Уже как только не думал чем это сделать, кучу блокнотов перерыл dreamweawer"ы всякие все бес толку, еще раз спасибо !!!
- 0
#4
matroskin8
-
- Пользователь PRO
- 767 сообщений
Отправлено 06 Сентябрь 2012 - 22:54
Абсолютно точно. Если мы имеем элемент span с классом textsize и внутри этого спана есть хотя бы 1 символ, то открывающий спан и закрывающий тег этого элемента будут заменены на div с классом text1. Содержимое остается неизменным.Уже даже вопрос сам по себе отпадает, как я вижу со скриншотов если между тегами спана есть текст то все ок, и заменяться только теги...?
ПожалуйстаСпасибо огромнейшее!!!

- 0
#5
eacl
-
- Неактивные
- 31 сообщений
Отправлено 07 Сентябрь 2012 - 12:39
<span class="textsize"><strong>test</strong></span> на <div class="text1"><strong>test</strong></div>или
<span class="textsize">test<br></span> на <div class="text1">test<br></div>
- 0
#6
matroskin8
-
- Пользователь PRO
- 767 сообщений
Отправлено 07 Сентябрь 2012 - 15:03
В первом случае регулярное выражение такое:
<span class="textsize"><strong>([^<>]+)</strong></span>Замена такая:
<div class="text1"><strong>1</strong></div>
Во втором случае регулярное выражение такое:
<span class="textsize">([^<>]+)<br></span>Замена такая:
<div class="text1">1<br></div>
- 0
#7
eacl
-
- Неактивные
- 31 сообщений
Отправлено 08 Сентябрь 2012 - 00:23

- 0
#8
eacl
-
- Неактивные
- 31 сообщений
Отправлено 17 Сентябрь 2012 - 22:02
1 текст
2 текст
3 текст
4 текст
5 текст
([0-5]d)([^<>]+)
1
- 0
#9
matroskin8
-
- Пользователь PRO
- 767 сообщений
Отправлено 17 Сентябрь 2012 - 22:54
Регулярные выражения - вещь очень мощная, но увы - не универсальная. Для того, чтобы составить работающее регулярное выражение, нужно четко знать с чем оно должно работать и что должно получиться на выходе.
Если понимать буквально фразу "задать начало фрагмента ввиде цифр", то цифры задаются литералами цифр: 0-9 либо метасимволом: d. Вот Вы в своем выражении указали, что в начале должны идти обязательные 2 цифры, если прочитать Ваше регулярное выражение - ([0-5]d)([^<>]+) - то буквально оно значит: одна цифра от 1 до 5, далее одна цифра от 0 до 9, далее как минимум один любой символ, кроме символов <>, и все 2 группы в сохраняющих скобках... ну а теперь сами себе задайте вопрос - и что должно делать это выражение?
В общем, на будущее - конкретнее формулируйте вопрос.
- 0
#10
eacl
-
- Неактивные
- 31 сообщений
Отправлено 18 Сентябрь 2012 - 12:47
Единственным вариантом за который можно зацепиться это цифры от 1 до 5.(начало, и в тоже время конец, номер следующего пункта)1 текст.
2 текст.
3 текст.
4 текст.
5 текст.
Я хотел составить регулярку, чтоб она брала начало нужного фрагмента, который начинаеться цифрой от 1-5. Конец можно было бы задать точкой. Но есть варианты когда список состоит не из одного предложения, может можно задать так
Надеюсь четко излагал свои мысли(1-5 начало) 1 текст.(1-5 конец т.е. в данном случае 2) и в тоже время что б следующая цифры 2 была началом следующего регулярного выражения
2 текст.
3 текст.
4 текст.
5 текст
- 0