<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: v1.1.30.03 RegExMatch работает с ошибкой(решено. ошибки нет)]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=14830</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=14830&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: v1.1.30.03 RegExMatch работает с ошибкой(решено. ошибки нет)».]]></description>
		<lastBuildDate>Sun, 16 Jun 2019 15:57:31 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: v1.1.30.03 RegExMatch работает с ошибкой(решено. ошибки нет)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134704#p134704</link>
			<description><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>Второе выражение .+ в режиме жадности захватывает максимальное количество <strong><span class="bbu">любых</span></strong> следующих символов</p></blockquote></div><p><strong>teadrinker</strong><br />Бинго! Именно так.<br />Спасибо огромное. Именно в этом месте я и лоханулся.</p><div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><p>Можете рассмотреть вместо .+ использование [^s]+ (один и более символов, которые не s), либо отключение жадности для .+ с помощью знака вопроса.</p></blockquote></div><p>Именно так.</p><p>Блин. Не первый год пользуюсь регексами в Notepad++ и PowerGrep и так лохануться.<br />Как будто пелена на глаза упала.<br />Ещё раз спасибо.</p><p>Ваш ответ лучший.</p><p>------------------<br />Я тему переименовал, чтобы её название не смущало</p>]]></description>
			<author><![CDATA[null@example.com (BSN201904)]]></author>
			<pubDate>Sun, 16 Jun 2019 15:57:31 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134704#p134704</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: v1.1.30.03 RegExMatch работает с ошибкой(решено. ошибки нет)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134703#p134703</link>
			<description><![CDATA[<div class="quotebox"><cite>BSN201904 пишет:</cite><blockquote><p>Я не правильно понял, как работает функция RegExMatch с модификатором O) ?</p></blockquote></div><p>Работа RegEx с опцией O ничем не отличается, только обозначения другие.</p><div class="quotebox"><cite>BSN201904 пишет:</cite><blockquote><p>Т.е. для 3-й и 4-й подстроки почему-то отключается &quot;жадный&quot; режим</p></blockquote></div><p>Нет, не отключается. Но жадный режим работает слева направо, и преимущество имеют квантификаторы, расположенные левее.<br /></p><div class="codebox"><pre><code>RegExMatch(&quot;asssdfkrlssllssss&quot;, &quot;(s+).+(s+).+(s+)&quot;)</code></pre></div><p>Первое выражение с квантификатором <strong>s+</strong>, захватывает максимальное количество первых встретившихся <strong>s</strong>, как вы и ожидали.</p><p>Второе выражение <strong>.+</strong> в режиме жадности захватывает максимальное количество <em>любых</em> следующих символов так, чтобы выражения, расположенные правее, оставались валидными. Выражение за ним — <strong>s+</strong> — означает один и более символов <strong>s</strong>. Соответственно, ему достаточно одного <strong>s</strong>, чтобы оставаться валидным. Поэтому предыдущее <strong>.+</strong> захватывает всё, кроме последнего <strong>s</strong>, которое и остаётся следующему выражению. Думаю, принцип понятен.</p><p>Можете рассмотреть вместо <strong>.+</strong> использование <strong>[^s]+</strong> (один и более символов, которые не <strong>s</strong>), либо отключение жадности для <strong>.+</strong> с помощью знака вопроса.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 16 Jun 2019 13:33:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134703#p134703</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: v1.1.30.03 RegExMatch работает с ошибкой(решено. ошибки нет)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134697#p134697</link>
			<description><![CDATA[<p><strong>KusochekDobra</strong><br />Может я что-то не понял в том, как работает функция RegExMatch с модификатором O) - тогда прошу пояснить.<br />Судя по хэлпу и поиску в гугле я понял, что она работает следующим образом:<br />1)Подстрока, соответсующая всему шаблону, записывается в объект номер 0 <br />2)Подстрока, соответствующая подшаблону, начинающемуся с 1-й открывающейся скобки, записывается в объект номер 1<br />3)Подстрока, соответствующая подшаблону, начинающемуся с 2-й открывающейся скобки, записывается в объект номер 2<br />...<br />и т.д.<br />И понятно почему это сделано именно так. Эти объекты - это как бы аналоги содержимого &quot;обратных ссылок&quot; ($0, $1, $2 и т.д.), с которыми манипулирует строка замены на языке REGEX.</p><p>Но почему-то пример в моём коде показал, что это работает не так.</p><p>Я не правильно понял, как работает функция RegExMatch с модификатором O) ?<br />Или у меня алгоритм не &quot;жадный&quot;?</p>]]></description>
			<author><![CDATA[null@example.com (BSN201904)]]></author>
			<pubDate>Sun, 16 Jun 2019 04:36:36 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134697#p134697</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: v1.1.30.03 RegExMatch работает с ошибкой(решено. ошибки нет)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134695#p134695</link>
			<description><![CDATA[<div class="quotebox"><cite>BSN201904 пишет:</cite><blockquote><p>Т.е. для 3-й и 4-й подстроки почему-то отключается &quot;жадный&quot; режим и захватываются только первые символы подстрок</p></blockquote></div><p>Не &quot;первые&quot; символы подстрок. Весь Ваш шаблон захватывает, буквально первые три символа &quot;s&quot; затем пропускает &quot;dfkrlsslls&quot;, захватывает один символ &quot;s&quot; идущий после них, следующий пропускает и захватывает последний &quot;s&quot;. Так:<br /><strong>a<span style="color: red">sss</span>dfkrlsslls<span style="color: red">s</span>s<span style="color: red">s</span></strong></p><p>Почитайте про знак вопроса.</p>]]></description>
			<author><![CDATA[null@example.com (KusochekDobra)]]></author>
			<pubDate>Sat, 15 Jun 2019 22:51:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134695#p134695</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: v1.1.30.03 RegExMatch работает с ошибкой(решено. ошибки нет)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134694#p134694</link>
			<description><![CDATA[<p><strong>teadrinker</strong><br />Это просто описка.<br />Вот исправленный код<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
F:=&quot;asssdfkrlssllssss&quot;
MsgBox F=%F%
if (RegExMatch(F, &quot;O)(s+).+(s+).+(s+)&quot;, my_object)&gt;0) {
	MsgBox % &quot; | &quot;my_object[0]&quot; | &quot;my_object[1]&quot; | &quot;my_object[2]&quot; | &quot;my_object[3]
}

F=&quot;&quot; ; Очистить память
ExitApp
</code></pre></div></div></div><p>Но он всё равно выдает не<br /></p><div class="quotebox"><blockquote><p>&quot; | sssdfkrlssllssss | sss | ss | ssss&quot;</p></blockquote></div><p>А<br /></p><div class="quotebox"><blockquote><p>&quot; | sssdfkrlssllssss | sss | s | s&quot;</p></blockquote></div><p>Т.е. для 3-й и 4-й подстроки почему-то отключается &quot;жадный&quot; режим и захватываются только первые символы подстрок</p>]]></description>
			<author><![CDATA[null@example.com (BSN201904)]]></author>
			<pubDate>Sat, 15 Jun 2019 18:33:37 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134694#p134694</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: v1.1.30.03 RegExMatch работает с ошибкой(решено. ошибки нет)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134690#p134690</link>
			<description><![CDATA[<p>Плохо разобрались в принципе действия квантификаторов. Какой смысл вы вкладываете в конструкцию <strong>s*+</strong> ? Чем это отличается от <strong>s*</strong> ? А чем от <strong>s+</strong> ?</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sat, 15 Jun 2019 15:33:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134690#p134690</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: v1.1.30.03 RegExMatch работает с ошибкой(решено. ошибки нет)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134689#p134689</link>
			<description><![CDATA[<p>Т.е. должно быть найдено 4 не пустые подстроки, а у меня две последние почему-то пустые.<br />Хотя режим вроде GREEDY (&quot;жадный&quot;)</p>]]></description>
			<author><![CDATA[null@example.com (BSN201904)]]></author>
			<pubDate>Sat, 15 Jun 2019 15:22:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134689#p134689</guid>
		</item>
		<item>
			<title><![CDATA[AHK: v1.1.30.03 RegExMatch работает с ошибкой(решено. ошибки нет)]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=134688#p134688</link>
			<description><![CDATA[<p>Есть код:<br /></p><div class="codebox"><pre><code>
#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
F:=&quot;asssdfkrlssllssss&quot;
MsgBox F=%F%
if (RegExMatch(F, &quot;O)(s+).+(s*+).+(s*+)&quot;, my_object)&gt;0) {
	MsgBox % &quot; | &quot;my_object[0]&quot; | &quot;my_object[1]&quot; | &quot;my_object[2]&quot; | &quot;my_object[3]
}

F=&quot;&quot; ; Очистить память
ExitApp
</code></pre></div><p>Я ожидал, что результатом будет:<br />&quot; | sssdfkrlssllssss | sss | ss | ssss&quot;</p><p>А он выдаёт:<br />&quot; | sssdfkrlssllssss | sss |&nbsp; | &quot;</p><p>Это я где-то ошибся, или функция RegExMatch выполняется с ошибкой?</p>]]></description>
			<author><![CDATA[null@example.com (BSN201904)]]></author>
			<pubDate>Sat, 15 Jun 2019 14:49:58 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=134688#p134688</guid>
		</item>
	</channel>
</rss>
