1

Тема: AHK: Нумерация в цикле

str =
(
<h1 class="
	<h2 class="
		<h3 class="
)

RegexReplace(str, "is)(<h1|<h2|<h3|<h4|<h5)",, headersCount) ;определить колич заголовков
loop, %headersCount%
{
   str := RegExReplace(str, "m`a)(<h1|<h2|<h3|<h4|<h5)", "<a name=""" A_Index """></a>$1")
}
MsgBox % str

Как произвести разовую обработку в каждой строке, с назначением возрастающей нумерации, чтобы получилось, как ниже? —


<a name="1"></a><h1 class="
	<a name="2"></a><h2 class="
		<a name="3"></a><h3 class="

2

Re: AHK: Нумерация в цикле

str =
(
<h1 class="
   <h2 class="
      <h3 class="
)
MsgBox, % RegExReplace(str, "<h(\d+)\s+class=", "<a name=""$1""></a>$0")
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg
+ DD

3

Re: AHK: Нумерация в цикле

А как сделать, чтобы нумерация не повторялась для одинаковых тегов?

str =
(
<h1 class="">
   <h2 class="">
      <h3 class="">
<h2 id="1">
<h2 id="2">
)
str := RegExReplace(str, "i)<h(\d+)[^>]*>", "<a name=""$1""></a>$0")
MsgBox % str

4

Re: AHK: Нумерация в цикле

str =
(
<h1 class="">
   <h2 class="">
      <h3 class="">
<h2 id="1">
<h2 id="2">
)
match := ""
while RegExMatch(str, "iO)<h\d+", match, match ? match.Pos + match.Len + 14 : 1)
   str := RegExReplace(str, match[0], "<a name=""" . A_Index . """></a>" . match[0],, 1, match.Pos)
MsgBox % str 
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg
+ DD

5 (изменено: DD, 2020-04-29 23:55:11)

Re: AHK: Нумерация в цикле

По какой причине номер не проставляется перед всеми тегами, как это предполагается в рег. выражении? —


html =
(
<p> <img data-attachment-id="11522" data-permalink="https://paginatransversal.wordpress.com/2017/06/26/tiene-el-cristianismo-un-futuro/cristianismo/" data-orig-file="https://paginatransversal.files.wordpress.com/2017/06/cristianismo.jpg" data-orig-size="1024,576" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="CRISTIANISMO" data-image-description="" data-medium-file="https://paginatransversal.files.wordpress.com/2017/06/cristianismo.jpg?w=300" data-large-file="https://paginatransversal.files.wordpress.com/2017/06/cristianismo.jpg?w=1024" class=" wp-image-11522 alignleft" src="pic/2017=06=cristianismo.jpg_w=187_038_h=105.jpg" alt="" width="187" height="105" srcset="https://paginatransversal.files.wordpress.com/2017/06/cristianismo.jpg?w=187&amp;h=105 187w, https://paginatransversal.files.wordpress.com/2017/06/cristianismo.jpg?w=374&amp;h=210 374w, https://paginatransversal.files.wordpress.com/2017/06/cristianismo.jpg?w=150&amp;h=84 150w, https://paginatransversal.files.wordpress.com/2017/06/cristianismo.jpg?w=300&amp;h=169 300w" sizes="(max-width: 187px) 100vw, 187px" />por <strong>Vladimir Legoyda</strong> &#8211; ВїTiene el cristianismo un futuro? El pensador polaco del siglo XX Kolokovsky dijo una vez con mucha exactitud que la lucha contra el cristianismo no se lleva a cabo a travГ©s de la discusiГіn. El arma principal es un cacareo insensato. No los argumentos de los oponentes, no un sistema de pruebas, no las reflexiones filosГіficas&#8230; sino una negaciГіn del diГЎlogo y una risa sin sentido.<span id="more-11521"></span></p>
)

match := "", Pos = 1
while RegExMatch(html, "iO)<[^>]*>", match, match ? match.Pos + match.Len + 14 : 1)
{
   n := Format("{:0" . 10 . "u}", a_index)
   html := RegExReplace(html, match[0], "[" . n . "]" . match[0],, 1, match.Pos)
}
msgbox % html

6

Re: AHK: Нумерация в цикле

А откуда число 14 взялось?

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

7 (изменено: DD, 2020-04-30 11:11:36)

Re: AHK: Нумерация в цикле

Как я понял, это количество символов в строке из предыдущего задания, но замена на большее число не работала. Возможна ли работа без привязки к длине строки?

8

Re: AHK: Нумерация в цикле

Проще так, если я понял правильно:

html =
(
<p> <img data-attachment-id="11522" data-permalink="https://paginatransversal.wordpress.com/2017/06/26/tiene-el-cristianismo-un-futuro/cristianismo/" data-orig-file="https://paginatransversal.files.wordpress.com/2017/06/cristianismo.jpg" data-orig-size="1024,576" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="CRISTIANISMO" data-image-description="" data-medium-file="https://paginatransversal.files.wordpress.com/2017/06/cristianismo.jpg?w=300" data-large-file="https://paginatransversal.files.wordpress.com/2017/06/cristianismo.jpg?w=1024" class=" wp-image-11522 alignleft" src="pic/2017=06=cristianismo.jpg_w=187_038_h=105.jpg" alt="" width="187" height="105" srcset="https://paginatransversal.files.wordpress.com/2017/06/cristianismo.jpg?w=187&amp;h=105 187w, https://paginatransversal.files.wordpress.com/2017/06/cristianismo.jpg?w=374&amp;h=210 374w, https://paginatransversal.files.wordpress.com/2017/06/cristianismo.jpg?w=150&amp;h=84 150w, https://paginatransversal.files.wordpress.com/2017/06/cristianismo.jpg?w=300&amp;h=169 300w" sizes="(max-width: 187px) 100vw, 187px" />por <strong>Vladimir Legoyda</strong> &#8211; ВїTiene el cristianismo un futuro? El pensador polaco del siglo XX Kolokovsky dijo una vez con mucha exactitud que la lucha contra el cristianismo no se lleva a cabo a travГ©s de la discusiГіn. El arma principal es un cacareo insensato. No los argumentos de los oponentes, no un sistema de pruebas, no las reflexiones filosГіficas&#8230; sino una negaciГіn del diГЎlogo y una risa sin sentido.<span id="more-11521"></span></p>
)

while RegExMatch(html, "OU)(.*)(<.+>)", m, m ? m.Pos + m.Len : 1)
   newHtml .= m[1] . Format("[{:010}]", A_Index) . m[2]
MsgBox, % newHtml
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg
+ DD

9

Re: AHK: Нумерация в цикле

fbody =
(
	<h2>La crisis </h2>

		<p>de&nbsp;Europa</p>
	<div class="entry">
)
mm := "", Pos = 1
while RegExMatch(fbody, "iO)(<p|<h1|<h2|<h3|<h4|<h5|<h6|<li)\b", mm, mm ? mm.Pos + mm.Len + 14 : 1)
{
   n := Format("§{:010}§", a_index)
   fbody := RegExReplace(fbody, mm[0], n . mm[0],, 1, mm.Pos)
}
msgbox % fbody

Куда следует добавить «n», чтобы строка обрамлялась одинаковым числом, с таким результатом? —


	§0000000001§<h2>La crisis </h2>§0000000001§

		§0000000002§<p>de&nbsp;Europa</p>§0000000002§
	<div class="entry">

10

Re: AHK: Нумерация в цикле

То есть, хотелось бы определить, где конец строки.

11 (изменено: serzh82saratov, 2020-05-01 13:22:32)

Re: AHK: Нумерация в цикле


fbody =
(
	<h2>La crisis </h2>

		<p>de&nbsp;Europa</p>
	<div class="entry">
)
Pos = 1
 
while RegExMatch(fbody, "iO)(<(p|h\d+|li)>.*?</.*?>)", mm, Pos), Pos := mm.Pos + mm.Len
{
   n := Format("§{:010}§", a_index) 
   fbody := RegExReplace(fbody, mm[0], n . mm[0] . n,, 1, mm.Pos)
}
msgbox % fbody
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v2004, AutoHotkey_L v1.1.33.02 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui
+ DD