1

Тема: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

Прошу помощи в написание скрипта для HTML правки
Очень нужно чтоб от <table> до </table> все удалялось в том числе что находится между этими тагеми вместе с тегами.
Что я имею
Скрипт который копирует весь текст, а вот далее тупик

vk9::
SetBatchLines, -1
ClipBoard =
SendInput, ^{vk41}^{vk43}    ;  ctrl+A crl+C
ClipWait, 2
if ErrorLevel
{
   MsgBox, Буфер обмена пуст!
   Return

2

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

MyVar = TEXT1<table>aaaaaaaaaaa</table>TEXT2
OutputVar := RegExReplace(MyVar, "(<table>)(.*)(</table>)")
MsgBox, %OutputVar%

3

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

Не верно.

MyVar = TEXT1<table>aaaa`r`naaaaaaa</table>TEXT2
OutputVar := RegExReplace(MyVar, "(<table>)(.*)(</table>)")
MsgBox, %OutputVar%

4 (изменено: edea28_, 2021-02-25 20:34:43)

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

Malcev
Не совсем понимаю как вписать этот скрипт в свой.
Можешь кинуть полностью как будет выглядеть скрипт?
Задумано так что нажимаешь клавишу и текст от table> по </table удаляется.

vk9::
SetBatchLines, -1
ClipBoard =
SendInput, ^{vk41}^{vk43}    ;  ctrl+A crl+C
ClipWait, 2
if ErrorLevel
{
   MsgBox, Буфер обмена пуст!
   Return
}

SendInput, ^{vk56}     ;  ctrl+V
Return 

5

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

edea28_, код следует оформлять тегом "code". Предложения должны начинаться с заглавной буквы и заканчиваться знаками препинания. Исправьте!

6

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

(<table>)(.*)(</table>)

При вот таком написании будет удаляться всё между первым найденным "<table>" и первым найденным"</table>". А это скорее всего не то, что нужно ТС. Я думаю, что он хочет находить парные теги.
Надо находить первый "</table>", а потом к нему в уже пройденном тексте последний "<table>". И повторять всё это пока они не кончаться.

7 (изменено: edea28_, 2021-02-26 00:49:04)

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

Foma Malcev teadrinker
Задумано это так:
Имею кусок кода например:


 <div>        </div>
<h4>Характеристики:</h4>
<table>
<tbody>
<tr>
<td>Артикул</td>
<td>EA07.003.001</td>
<tr>
<td>Напряжение питания</td>
<td>230 В; 50 Гц или 24 В АС/DC</td>
</table>
Блабла по теме дальше.

Нажимаю кнопку которую забиндил, весь текст выделяется, убирает лишнее, ИТОГ:


 <div>        </div>
<h4>Характеристики:</h4>
Блабла по теме дальше.

Короче говоря чистилка кода от лишних тегов.
Вот прошу скинуть более менее рабочий скрипт, в AHK плохо разбираюсь но очень интересно.

8

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

Foma пишет:

При вот таком написании будет удаляться всё между первым найденным "<table>" и первым найденным"</table>"

Нет.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

teadrinker
Помогите разрабы с задумкой.

10 (изменено: teadrinker, 2021-02-26 00:59:35)

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

Правильно так:

html =
(
 <div>        </div>
<h4>Характеристики:</h4>
<table>
<tbody>
<tr>
<td>Артикул</td>
<td>EA07.003.001</td>
<tr>
<td>Напряжение питания</td>
<td>230 В; 50 Гц или 24 В АС/DC</td>
</table>
Блабла по теме дальше.
)
MsgBox, % RegExReplace(html, "s)<table>.*?</table>\R?")

Как вставить в свой, подумайте сами.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

11

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

teadrinker
У меня вообще нету вариантов как реализовать и доделать.
И я не совсем понял зачем кусок html кода использовать в скрипте

12

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

edea28_ пишет:

И я не совсем понял зачем кусок html кода использовать в скрипте

Только для того, чтобы показать, что регулярка работает правильно. По сути решение — только эта часть:

RegExReplace(html, "s)<table>.*?</table>\R?")

которая решает задачу удаления всего лишнего. Ваша задача теперь только вставить результат.

edea28_ пишет:

У меня вообще нету вариантов как реализовать и доделать.

Это форум для тех, кто интересуется программированием, если что. Обычно такие люди и Гуглом умеют пользоваться. Попробуйте запрос «ahk вставить текст».

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

13 (изменено: edea28_, 2021-02-26 11:12:42)

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

Что тут надо исправить чтоб RegExReplace понимал что я вставлю текст из буфера обмена. А потом исправленный текст вставлял обратно.


vk9::      
MyVar = %Clipboard%
OutputVar := RegExReplace(%Clipboard%, "(<table>)(.*)(</table>)")
MsgBox, %OutputVar%
return

Скрипт с авто копированием текста.


vk9::
SetBatchLines, -1
ClipBoard =
SendInput, ^{vk41}^{vk43}    ;  ctrl+A crl+C
ClipWait, 2
if ErrorLevel
{
   MsgBox, Буфер обмена пуст!
   Return
 }   
MyVar = %Clipboard%
OutputVar := RegExReplace(%Clipboard%, "(<table>)(.*)(</table>)")
MsgBox, %OutputVar%
return

14

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

edea28_ пишет:

Что тут надо исправить

edea28_ пишет:
RegExReplace(%Clipboard%, "(<table>)(.*)(</table>)")
teadrinker пишет:
RegExReplace(html, "s)<table>.*?</table>\R?")

Вопрос, что тут надо исправить. (?)

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

15 (изменено: edea28_, 2021-02-26 13:15:11)

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

teadrinker
Получилось все! Но я попробовал поменять тег

<table></table>
на
<table border="2"> </table>
И мне выдает ошибку и ругается про двойку и ""
Можно это исправить?


 
vk9::
SetBatchLines, -1
ClipBoard =
SendInput, ^{vk41}^{vk43}    ;  ctrl+A crl+C
ClipWait, 2
if ErrorLevel
{
   MsgBox, Буфер обмена пуст!
   Return
 }   
MyVar = %clipboard%
Clipboard := RegExReplace(Clipboard, "s)<table border="2">.*?</table>\R?")
SendInput, ^{vk56}     ;  ctrl+V
return

16

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

Исправил это так.


^vkA4::
SetBatchLines, -1
ClipBoard =
SendInput, ^{vk41}^{vk43}    ;  ctrl+A crl+C
ClipWait, 2
if ErrorLevel
{
   MsgBox, Буфер обмена пуст!
   Return
 }   
StringReplace, ClipBoard, ClipBoard, <table border="2">,<tablez>, All 
MyVar = %clipboard%
Clipboard := RegExReplace(Clipboard, "s)<tablez>.*?</table>\R?")
SendInput, ^{vk56}     ;  ctrl+V
return

17

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

Литеральные кавычки нужно удваивать:

RegExReplace(Clipboard, "s)<table border=""2"">.*?</table>\R?")
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

18 (изменено: edea28_, 2021-02-26 14:20:24)

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

teadrinker
Спасибо огромное!
У меня еще один маленький вопрос.


StringReplace, ClipBoard, ClipBoard, .,;, All
StringReplace, ClipBoard, ClipBoard, ,,;, All
Это скрипт меняет точку"." на точку с запятой ";"
Но запятую "," на точку с запятой ";" ведают ошибку при запуске.
Можно как то подправить ?

19

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

Запятую можно экранировать знаком акцента: `,
Лучше использовать StrReplace(), все литералы в кавычках.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

20

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

teadrinker
Как то так?


StringReplace, ClipBoard, ClipBoard, StrReplace(","),;, All 

21

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

Нет.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

22

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

teadrinker
Блин, а как?(

23

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

А как в справке?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

24 (изменено: edea28_, 2021-02-26 14:58:20)

Re: AHK: Прошу помощи в написание скрипта для HTML правки <тегов>

teadrinker
Да понял тебя.