<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Несколько результатов в многострочной регулярке]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=12519</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=12519&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Несколько результатов в многострочной регулярке».]]></description>
		<lastBuildDate>Fri, 03 Mar 2017 07:39:19 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Несколько результатов в многострочной регулярке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=113545#p113545</link>
			<description><![CDATA[<div class="codebox"><pre><code>text = 
(
&lt;tr&gt;
тест 4
&lt;/tr&gt;

&lt;tr&gt;
тест 3
&lt;/tr&gt;

&lt;tr&gt;
тест 1
&lt;/tr&gt;
)

MsgBox, % RegExReplace(text, &quot;m`as)^(тест (\d+)$(?=.*(^тест \d+$))?|.*?)(?(3)|(\R|$))&quot;, &quot;$2&quot;)</code></pre></div><p>Или, если в конце строки &quot;тест 1&quot; не обязательно число, а просто один символ:<br /></p><div class="codebox"><pre><code>RegExReplace(text, &quot;m`as)^(тест (.)$(?=.*(^тест .$))?|.*?)(?(3)|(\R|$))&quot;, &quot;$2&quot;)</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Fri, 03 Mar 2017 07:39:19 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=113545#p113545</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Несколько результатов в многострочной регулярке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=113537#p113537</link>
			<description><![CDATA[<p><strong>Turambar</strong><br />Почему тема в Games? <span style="color: green">Перенесено в основной раздел.</span></p><div class="codebox"><pre><code>text =
(
&lt;tr&gt;
тест 4
&lt;/tr&gt;

&lt;tr&gt;
тест 3
&lt;/tr&gt;

&lt;tr&gt;
тест 1
&lt;/tr&gt;
)

Pos = 1
While Pos := RegExMatch(text, &quot;&lt;tr&gt;\nтест (\d+)\n&lt;/tr&gt;&quot;, Match, Pos+StrLen(Match))
  S := S &quot;`n&quot; Match1
FileOpen(&quot;test.txt&quot;, &quot;w&quot;).Write(SubStr(S, 2))

; Либо:

RegExp := ComObjCreate(&quot;VBScript.Regexp&quot;)
RegExp.Pattern := &quot;&lt;tr&gt;\nтест (\d+)\n&lt;/tr&gt;&quot;
RegExp.Global := 1, Col := RegExp.Execute(Text)
Loop, % Col.Count
  S := S &quot;`n&quot; Col.Item(A_Index-1).Submatches(0)
FileOpen(&quot;test.txt&quot;, &quot;w&quot;).Write(SubStr(S, 2))</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Flasher)]]></author>
			<pubDate>Fri, 03 Mar 2017 00:24:05 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=113537#p113537</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Несколько результатов в многострочной регулярке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=113524#p113524</link>
			<description><![CDATA[<p>Здравствуйте. Вопрос следующего характера. Как можно заставить многострочную регулярку вывести все совпадения?</p><p>В указанном примере выводится только первое значение (разумеется!). Но как сделать запись в файл всех? Поместить регулярку в какой-то цикл? Но как? Ведь построчный цикл чтения (Loop, Read,) тут уже не подойдёт, поскольку регулярка многострочная.</p><p>Количество блоков <em>&lt;tr&gt;</em> заранее неизвестно. От 0 до тысячи.</p><div class="codebox"><pre><code>text = 
(
&lt;tr&gt;
тест 4
&lt;/tr&gt;

&lt;tr&gt;
тест 3
&lt;/tr&gt;

&lt;tr&gt;
тест 1
&lt;/tr&gt;
)

pattern=&lt;tr&gt;.*?тест (.).*?&lt;/tr&gt;
if RegExMatch(text, pattern, line)
   FileAppend, %line1%`n, %A_ScriptDir%/test.txt
return</code></pre></div><p>Должно быть в файле на выходе:<br /></p><div class="codebox"><pre><code>
4
3
1</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Turambar)]]></author>
			<pubDate>Thu, 02 Mar 2017 17:16:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=113524#p113524</guid>
		</item>
	</channel>
</rss>
