|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Заменить один тег на другой html |
|
|
[решено] Заменить один тег на другой html
|
![]() Старожил Сообщения: 165 |
Здравствуйте. Мне нужно в html коде заменить тег
(их может быть несколько) на Проблема в том, что тегов span в документе очень много: у меня не получается найти закрывающий тег (так как они очень часто влаживаются один в другой). Помогите, пожалуйста. |
|
Отправлено: 13:03, 06-05-2012 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Pavluha:
Если первое, тогда так: $vTest = 'some code <span style="font-weight: bold;">span content <span style="">included span content other span content</span> some code'</span> $sRet = StringRegExpReplace($vTest, '<span style="[^"]*">|</span>', '') ConsoleWrite("Result: " & $sRet & @LF) $vTest = 'some code <span style="font-weight: bold;">span content <span style="">included span content other span content</span> some code'</span> $sRet = StringRegExpReplace($vTest, '<span style="[^"]*">.*</span>', '') ConsoleWrite("Result: " & $sRet & @LF) |
|
------- Отправлено: 15:31, 06-05-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Старожил Сообщения: 165
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось Pavluha, 06-05-2012 в 21:50. Отправлено: 21:29, 06-05-2012 | #3 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Pavluha:
$vTest = 'some code <span style="font-weight: bold;">span content <span style="">included span content other span content</span> some code</span>' While 1 $vTest = StringRegExpReplace($vTest, '<span style="[^"]*">(.*(?=</span>))</span>', '<b>\1</b>') If @extended = 0 Then ExitLoop WEnd ConsoleWrite("Result: " & $vTest & @LF) |
|
------- Отправлено: 21:55, 06-05-2012 | #4 |
![]() Старожил Сообщения: 165
|
Профиль | Отправить PM | Цитировать а можно другие варианты, а то этот не работает правильно (только что заметил)
|
|
Последний раз редактировалось Pavluha, 06-05-2012 в 23:23. Отправлено: 22:37, 06-05-2012 | #5 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Pavluha:
|
|
------- Отправлено: 02:06, 07-05-2012 | #6 |
![]() Пользователь Сообщения: 88
|
Профиль | Отправить PM | Цитировать Может так :?
$sText='<title>Заменить один тег на другой html</title>' & @CRLF & _ 'some <span style="font-weight: bold;">text and <span style="font-weight: italic;">more</span></span>' & @CRLF & _ 'some <span style="font-weight: bold;">====text1==== and <span style="font-weight: italic;">more</span></span>' & @CRLF & _ 'some <span style="font-weight: bold;">*****text2**** and <span style="font-weight: italic;">more</span></span>' $sNewTag="b" $sPatern = '<(?:span.*?bold;")>(.+)<(?:/span)>' $sResult = StringRegExpReplace( $sText, $sPatern,"<" & $sNewTag & ">$1</" & $sNewTag & ">" ) MsgBox(4096, ' Test Result', $sResult) |
Последний раз редактировалось gregaz, 07-05-2012 в 06:50. Отправлено: 06:28, 07-05-2012 | #7 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата gregaz:
|
|
------- Отправлено: 07:20, 07-05-2012 | #8 |
![]() Старожил Сообщения: 165
|
Профиль | Отправить PM | Цитировать Creat0R, gregaz, я придумал алгоритм, по которому можно 100% найти закрывающий тег, он есть конечно
![]() $iPos = StringInStr ($sString, '<span style="font-weight: bold;">') $iTags = 0 While $iTags<>-1 (тут идём дальше по файлу. если видим закрывающийся тег, то $iTags уменьшаем на 1, а если открывающийся, то увеличиваем на 1. Цикл закончится, когда найдём правильный закрывающийся тег. Надо найти его позицию.) WEnd Цитата Creat0R:
|
|
Последний раз редактировалось Pavluha, 07-05-2012 в 17:13. Причина: исправлены ошибки Отправлено: 17:04, 07-05-2012 | #9 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Pavluha:
Я дал рабочий вариант, если нет хотя бы куска кода который показывает обратно, то не имеет смысла дальше что либо делать. Цитата Pavluha:
Ты написал что вариант работает неправильно, покажи с каким кодом. |
||
------- Отправлено: 17:18, 07-05-2012 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] Как заменить стандартный блокнот другой программой? | vanillapink | Microsoft Windows 7 | 35 | 19-12-2016 13:12 | |
[решено] html|Тег <pre> выводит в одну строку | morgan1991 | Вебмастеру | 2 | 09-03-2010 13:38 | |
Windows Server: заменить два SATA диска (RAID 1 на на PCI контроллере) на один IDE | gunwitch | Microsoft Windows NT/2000/2003 | 8 | 17-03-2008 15:55 | |
Один видит, другой - нет | monokius | Сетевые технологии | 4 | 09-11-2005 16:09 | |
Помогите найти HTML тег. | Pavel88 | Вебмастеру | 2 | 09-11-2002 11:19 |
|