<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Несколько результатов в многострочной регулярке]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=12519&amp;type=atom" />
	<updated>2017-03-03T07:39:19Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=12519</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Несколько результатов в многострочной регулярке]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=113545#p113545" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2017-03-03T07:39:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=113545#p113545</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Несколько результатов в многострочной регулярке]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=113537#p113537" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Flasher]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27593</uri>
			</author>
			<updated>2017-03-03T00:24:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=113537#p113537</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[AHK: Несколько результатов в многострочной регулярке]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=113524#p113524" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Turambar]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33097</uri>
			</author>
			<updated>2017-03-02T17:16:27Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=113524#p113524</id>
		</entry>
</feed>
