<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Mikrotik.moscow [тема: Использование регулярных выражений в Mikrotik и создание функций поиска с возвращаемыми значениями]</title>
		<link>http://mikrotik.moscow</link>
		<description>Новое в теме Использование регулярных выражений в Mikrotik и создание функций поиска с возвращаемыми значениями форума RouterOS на сайте Mikrotik.moscow [mikrotik.moscow]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Thu, 30 Apr 2026 18:05:37 +0300</pubDate>
		<item>
			<title>Использование регулярных выражений в Mikrotik и создание функций поиска с возвращаемыми значениями</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/84068-ispolzovanie-regulyarnykh-vyrazheniy-v-mikrotik-i-sozdanie-funktsiy-poiska-s-vozvrashchaemymi-znacheniyami/message382900">Использование регулярных выражений в Mikrotik и создание функций поиска с возвращаемыми значениями</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			В вашем случае вы все еще можете использовать функцию findPosix, но вам нужен только первый элемент возвращаемого массива, который содержит найденную подстроку. Пример использования: /system script run ScriptFindPosix; # Эта команда может быть запущена при загрузке маршрутизатора один раз, чтобы инициализировать глобальную переменную FindRegex, которая будет хранить функцию поиска. :global findPosix; # объявление глобальной переменной #-----------замените значения переменных YOURString и regex----------- :local YOURString "ВСТАВЬТЕ ВАШ ТЕКСТ"; :local regex "ВСТАВЬТЕ ВАШЕ REGULAR EXPRESSION ЗДЕСЬ"; :local startPosition 0; :local ArrRezult [$findPosix $YOURString $regex $startPosition]; # Возвращаемое значение: ArrRezult - это массив {FoundSubString; PositionStart; PositionEnd} :local FoundSubString [:pick $ArrRezult 0]; :put $FoundSubString # $FoundSubString содержит найденную строку. <br />
			<i>27.02.2024 07:30:00, vadimsachkov.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/84068-ispolzovanie-regulyarnykh-vyrazheniy-v-mikrotik-i-sozdanie-funktsiy-poiska-s-vozvrashchaemymi-znacheniyami/message382900</link>
			<guid>http://mikrotik.moscow/forum/forum57/84068-ispolzovanie-regulyarnykh-vyrazheniy-v-mikrotik-i-sozdanie-funktsiy-poiska-s-vozvrashchaemymi-znacheniyami/message382900</guid>
			<pubDate>Tue, 27 Feb 2024 07:30:00 +0300</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Использование регулярных выражений в Mikrotik и создание функций поиска с возвращаемыми значениями</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/84068-ispolzovanie-regulyarnykh-vyrazheniy-v-mikrotik-i-sozdanie-funktsiy-poiska-s-vozvrashchaemymi-znacheniyami/message382899">Использование регулярных выражений в Mikrotik и создание функций поиска с возвращаемыми значениями</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			У вас уже есть ваш ответ: <noindex><a href="http://forum.mikrotik.com/t/how-to-get-details-after-a-certain-text-in-sms/163656/2" target="_blank" rel="nofollow" >http://forum.mikrotik.com/t/how-to-get-details-after-a-certain-text-in-sms/163656/2</a></noindex> <br />
			<i>25.01.2023 13:03:00, rextended.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/84068-ispolzovanie-regulyarnykh-vyrazheniy-v-mikrotik-i-sozdanie-funktsiy-poiska-s-vozvrashchaemymi-znacheniyami/message382899</link>
			<guid>http://mikrotik.moscow/forum/forum57/84068-ispolzovanie-regulyarnykh-vyrazheniy-v-mikrotik-i-sozdanie-funktsiy-poiska-s-vozvrashchaemymi-znacheniyami/message382899</guid>
			<pubDate>Wed, 25 Jan 2023 13:03:00 +0300</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Использование регулярных выражений в Mikrotik и создание функций поиска с возвращаемыми значениями</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/84068-ispolzovanie-regulyarnykh-vyrazheniy-v-mikrotik-i-sozdanie-funktsiy-poiska-s-vozvrashchaemymi-znacheniyami/message382898">Использование регулярных выражений в Mikrotik и создание функций поиска с возвращаемыми значениями</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			У вас есть упрощённая версия? Где мы можем получить только точные слова? Например, как номер ссылки в текстовом сообщении? <br />
			<i>25.01.2023 12:28:00, akira463.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/84068-ispolzovanie-regulyarnykh-vyrazheniy-v-mikrotik-i-sozdanie-funktsiy-poiska-s-vozvrashchaemymi-znacheniyami/message382898</link>
			<guid>http://mikrotik.moscow/forum/forum57/84068-ispolzovanie-regulyarnykh-vyrazheniy-v-mikrotik-i-sozdanie-funktsiy-poiska-s-vozvrashchaemymi-znacheniyami/message382898</guid>
			<pubDate>Wed, 25 Jan 2023 12:28:00 +0300</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Использование регулярных выражений в Mikrotik и создание функций поиска с возвращаемыми значениями</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/84068-ispolzovanie-regulyarnykh-vyrazheniy-v-mikrotik-i-sozdanie-funktsiy-poiska-s-vozvrashchaemymi-znacheniyami/message382897">Использование регулярных выражений в Mikrotik и создание функций поиска с возвращаемыми значениями</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Это абсолютно замечательно! Огромное спасибо, что поделились этим. <br />
			<i>08.09.2021 13:51:00, eguun.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/84068-ispolzovanie-regulyarnykh-vyrazheniy-v-mikrotik-i-sozdanie-funktsiy-poiska-s-vozvrashchaemymi-znacheniyami/message382897</link>
			<guid>http://mikrotik.moscow/forum/forum57/84068-ispolzovanie-regulyarnykh-vyrazheniy-v-mikrotik-i-sozdanie-funktsiy-poiska-s-vozvrashchaemymi-znacheniyami/message382897</guid>
			<pubDate>Wed, 08 Sep 2021 13:51:00 +0300</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Использование регулярных выражений в Mikrotik и создание функций поиска с возвращаемыми значениями</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/84068-ispolzovanie-regulyarnykh-vyrazheniy-v-mikrotik-i-sozdanie-funktsiy-poiska-s-vozvrashchaemymi-znacheniyami/message382896">Использование регулярных выражений в Mikrotik и создание функций поиска с возвращаемыми значениями</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Большое спасибо за это!! В данный момент я использую его для разбора IP-адресов из черного списка с API OTX, так как он отвечает в формате JSON, всё отлично работает. <br />
			<i>09.06.2021 11:55:00, faux.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/84068-ispolzovanie-regulyarnykh-vyrazheniy-v-mikrotik-i-sozdanie-funktsiy-poiska-s-vozvrashchaemymi-znacheniyami/message382896</link>
			<guid>http://mikrotik.moscow/forum/forum57/84068-ispolzovanie-regulyarnykh-vyrazheniy-v-mikrotik-i-sozdanie-funktsiy-poiska-s-vozvrashchaemymi-znacheniyami/message382896</guid>
			<pubDate>Wed, 09 Jun 2021 11:55:00 +0300</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Использование регулярных выражений в Mikrotik и создание функций поиска с возвращаемыми значениями</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/84068-ispolzovanie-regulyarnykh-vyrazheniy-v-mikrotik-i-sozdanie-funktsiy-poiska-s-vozvrashchaemymi-znacheniyami/message382895">Использование регулярных выражений в Mikrotik и создание функций поиска с возвращаемыми значениями</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Mikrotik может осуществлять поиск с помощью регулярных выражений, возвращая логическое значение. Эта ссылка <noindex><a href="https://wiki.mikrotik.com/wiki/Manual:Regular_Expressions" target="_blank" rel="nofollow" >https://wiki.mikrotik.com/wiki/Manual:Regular_Expressions</a></noindex> содержит информацию о возможностях поиска по регулярным выражениям. Как всегда, информация очень краткая. Часто необходимо получить именно найденную подстроку. Ниже я предлагаю свой скрипт, который возвращает не только саму найденную подстроку, но и позиции её начала и конца. #использование: [$findPosix Строка Регулярное выражение Начальная позиция] #возвращаемый массив: {НайденаПодстрока; НачальнаяПозиция; КонечнаяПозиция} :global findPosix do={ :local string [:tostr $1]; :local posix $2; :local posix0 $posix; :local fstart [:tonum $3]; :local fend 0; :if ($fstart &lt; 0) do={ :set fstart 0 }; :local substr [:pick $string $fstart [:len $string]]; :if ([:len $string] &gt; 0 && [:len $posix] &gt; 0 && $fstart &lt; [:len $string] && ($substr ~ $posix)) do={ :while ($fstart &lt; [:len $string]) do={ :set posix $posix0; :if ([:pick $posix 0] != "^") do={ :set posix ("^".$posix); :local continue true; :while ($continue && $fstart &lt; [:len $string]) do={ :if ([:pick $string $fstart [:len $string]] ~ $posix) do={ :set continue false; } else={:set fstart ($fstart + 1);}; } } :if ($fstart &lt; [:len $string]) do={ :if ([:pick $posix ([:len $posix] -1)] != "\$") do={ :set posix ($posix."\$"); :local continue true; :set fend [:len $string]; :while ($fend &gt; $fstart && $continue) do={ :if ([:pick $string $fstart $fend] ~ $posix) do={:set continue false} else={:set fend ($fend - 1)}; } } else={:set fend [:len $string];} } :if ($fend &gt; $fstart) do={:return {[:pick $string $fstart $fend]; $fstart; $fend};}; :set fstart ($fstart + 1); :set fend 0; :put "Неопределенная ошибка"; } } :return {[]; []; []}; }; используйте: сохраните вышеуказанный скрипт с именем ScriptFindPosix в вашем скрипте: /system script run ScriptFindPosix; # Эта команда может быть выполнена при загрузке маршрутизатора для инициализации глобальной переменной FindRegex, которая будет хранить функцию поиска :global findPosix; # объявление глобальной переменной #-----------------Например, найдем дату в строке ----- :local DateString "date: jan/01/2019 01:02:03"; :local regex "[a-z][a-z][a-z]/[01][0-9]/[0-2][0-9][0-9][0-9]"; :local startPosition 0; :local ArrRezult [$findPosix $DateString $regex $startPosition]; # возвращаемое значение: ArrRezult — массив {НайденаПодстрока; НачалоПозиции; КонецПозиции} :local FoundSubString [:pick $ArrRezult 0]; :local FoundPositionStart [:pick $ArrRezult 1]; :local FoundPositionEnd [:pick $ArrRezult 2]; :put "DateString=$DateString"; # DateString=date: jan/01/2019 01:02:03 :put "FoundString=$FoundSubString"; # FoundString=jan/01/2019 :put "FoundPositionStart=$FoundPositionStart"; # FoundPositionStart=6 :put "FoundPositionEnd=$FoundPositionEnd"; # FoundPositionEnd=17 Я приведу еще примеры использования: :put [$findPosix "time 01:02:13 3:04:05" ("[0-2]\?[0-9]:[0-5]\?[0-9]:[0-5]\?[0-9]"."\$")]; # 3:04:05;15;22 :put [$findPosix "IP address: 192.168.0.0" ("[0-2]\?[0-9]\?[0-9]\?[.][0-2]\?[0-9]\?[0-9]\?[.][0-2]\?[0-9]\?[0-9]\?[.][0-2]\?[0-9]\?[0-9]\?")]; # 192.168.0.0;12;23 :put [$findPosix "IP address: 192.168.0.0/24" ("[0-2]\?[0-9]\?[0-9]\?[.][0-2]\?[0-9]\?[0-9]\?[.][0-2]\?[0-9]\?[0-9]\?[.][0-2]\?[0-9]\?[0-9]\?")]; # 192.168.0.0;12;23 :local IPMASKposix ("[0-2]\?[0-9]\?[0-9]\?[.][0-2]\?[0-9]\?[0-9]\?[.][0-2]\?[0-9]\?[0-9]\?[.][0-2]\?[0-9]\?[0-9]\?(/[0-3]\?[0-9])\?"); :put [$findPosix "IP address AND mask if exist: 192.168.0.1/32" $IPMASKposix]; #192.168.0.1/32;30;44 :local IPMASKposix ("[0-2]\?[0-9]\?[0-9]\?[.][0-2]\?[0-9]\?[0-9]\?[.][0-2]\?[0-9]\?[0-9]\?[.][0-2]\?[0-9]\?[0-9]\?(/[0-3]\?[0-9])\?"); :local arrFound [$findPosix "IP address AND mask if exist: 192.168.0.1/32" $IPMASKposix]; :put [:pick $arrFound 0]; # 192.168.0.1/32 <br />
			<i>12.03.2019 13:28:00, vadimsachkov.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/84068-ispolzovanie-regulyarnykh-vyrazheniy-v-mikrotik-i-sozdanie-funktsiy-poiska-s-vozvrashchaemymi-znacheniyami/message382895</link>
			<guid>http://mikrotik.moscow/forum/forum57/84068-ispolzovanie-regulyarnykh-vyrazheniy-v-mikrotik-i-sozdanie-funktsiy-poiska-s-vozvrashchaemymi-znacheniyami/message382895</guid>
			<pubDate>Tue, 12 Mar 2019 13:28:00 +0300</pubDate>
			<category>RouterOS</category>
		</item>
	</channel>
</rss>
