<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Помогите с регулярным выражением</title>
    <link>https://slinkov.ru/openforum/vsluhforumID8/6349.html</link>
    <description>Народ, научите как выражение написать. Написал скрипт поиска, функцию вывода результатов хочу как в яндексе, чтобы предложения с подсветкой ключевиков выбрасывала.&lt;br&gt;Вот так: &quot;&amp;#124;(&#091;^&#092;.&#093;+система&#091;^&#092;.&#093;+)&amp;#124;i&quot; - работает, &lt;br&gt;а как сделать чтобы с вариантами работало???, типа как: &quot;&amp;#124;(&#091;^&#092;.&#093;+система&amp;#124;управления&#091;^&#092;.&#093;+)&amp;#124;i&quot; &lt;br&gt;&lt;br&gt;&lt;br&gt;function high_lite($text,$keys)&#123; // $text= string, $key= array(&apos;система&apos;,&apos;управления&apos;)&lt;br&gt; preg_match_all(&quot;&amp;#124;(&#091;^&#092;.&#093;+система&#091;^&#092;.&#093;+)&amp;#124;i&quot;,$text,$out); // разбиваем на предложения&lt;br&gt; $all_string= array_unique ($out&#091;1&#093;);&lt;br&gt; $text= implode(&apos;.&lt;br&gt;&apos;,$all_string);&lt;br&gt; &lt;br&gt; $key= &apos;&apos;;&lt;br&gt; foreach($keys as $v) &#123; // Собираем ключи - &quot;система&amp;#124;управления&quot;&lt;br&gt;$key .= $v.&apos;&amp;#124;&apos;;&lt;br&gt; &#125;&lt;br&gt; $key= rtrim ($key, &apos;&amp;#124;&apos;);&lt;br&gt;&lt;br&gt; $text=preg_replace(&quot;/($key)/si&quot;,&quot;&amp;lt;b&amp;gt;&#092;&#092;1&amp;lt;/b&amp;gt;&quot;,$text); // Подсветка ключевиков&lt;br&gt; return $text;&lt;br&gt;&#125;&lt;br&gt;</description>

<item>
    <title>Помогите с регулярным выражением (metacom)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID8/6349.html#11</link>
    <pubDate>Tue, 02 Jun 2009 10:42:02 GMT</pubDate>
    <description>почитал, все проще оказалось чем я думал. Моск научился закорючки понимать, спасибо!&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Помогите с регулярным выражением (angra)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID8/6349.html#10</link>
    <pubDate>Fri, 29 May 2009 04:18:57 GMT</pubDate>
    <description>Очень рекомендую Mastering Regular Expressions от O&apos;Reilly http://oreilly.com/catalog/9781565922570/. Даже трети изложенного там материала будет достаточно, чтобы больше не иметь проблем с регексами. Можно найти в сети в том числе и на русском.&lt;br&gt;</description>
</item>

<item>
    <title>Помогите с регулярным выражением (metacom)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID8/6349.html#9</link>
    <pubDate>Thu, 28 May 2009 07:50:52 GMT</pubDate>
    <description>Спасибо Вам большое за разъяснения. &lt;br&gt;&lt;br&gt;З.Ы.&lt;br&gt;Тяжело мне регулярные выражения даются, никак моск не могу научить с ними работать.&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Помогите с регулярным выражением (angra)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID8/6349.html#8</link>
    <pubDate>Thu, 28 May 2009 03:39:50 GMT</pubDate>
    <description>&amp;gt;З.Ы.Ы. а подскажите пожалуйста, как сделать чтобы точка в конце предложения тоже &lt;br&gt;&amp;gt;в карман попадала &lt;br&gt;&lt;br&gt;Дык, это совсем просто, добавьте ее в регекс: &lt;br&gt;(&#091;^&#092;.&#093;+(?:система&amp;#124;управления)&#091;^&#092;.&#093;+)&#092;.&lt;br&gt;</description>
</item>

<item>
    <title>Помогите с регулярным выражением (angra)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID8/6349.html#7</link>
    <pubDate>Thu, 28 May 2009 03:37:22 GMT</pubDate>
    <description>Вообще-то это _почти_ одно и то же. Просто () делают ограничение для альтернативы И захват. А (?:) делает только ограничение, БЕЗ захвата. Грамотно использовать именно последний вариант, так как он менее ресурсоемок, но большинство шпарит () без раздумий. То есть вариант с () у вас бы тоже сработал, но я в силу привычки дал вариант с (?:)&lt;br&gt;</description>
</item>

<item>
    <title>Помогите с регулярным выражением (metacom)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID8/6349.html#6</link>
    <pubDate>Tue, 26 May 2009 07:55:57 GMT</pubDate>
    <description>я пробовал с круглыми скобками, неработало, я не знал что двоеточие нужно... &lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Помогите с регулярным выражением (metacom)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID8/6349.html#5</link>
    <pubDate>Tue, 26 May 2009 07:54:41 GMT</pubDate>
    <description>&quot;&amp;#124;(&#091;^&#092;.&#093;+(?:система&amp;#124;управления)&#091;^&#092;.&#093;+)&amp;#124;i&quot; - вот оно, СЧАСТЬЕ :)))&lt;br&gt;да именно это я и хотел, спасибо вам.&lt;br&gt;&lt;br&gt;З.Ы. код привел в качестве иллюстрации работы функции (огород конечно полный), она сначала выдирает из текста предложения: &lt;br&gt;preg_match_all(&quot;&amp;#124;(&#091;^&#092;.&#093;+(?:система&amp;#124;управления)&#091;^&#092;.&#093;+)&amp;#124;i&quot;,$text,$out);&lt;br&gt;&lt;br&gt;а потом делает подсветку слов в найденных предложениях: &lt;br&gt;$text=preg_replace(&quot;/(система&amp;#124;управления)/si&quot;,&quot;&amp;lt;b&amp;gt;&#092;&#092;1&amp;lt;/b&amp;gt;&quot;,$text);&lt;br&gt;&lt;br&gt;&lt;br&gt;З.Ы.Ы. а подскажите пожалуйста, как сделать чтобы точка в конце предложения тоже в карман попадала &lt;br&gt;&quot;&amp;#124;(&#091;^&#092;.&#093;+(?:система&amp;#124;управления)&#091;^&#092;.&#093;+)&amp;#124;i&quot; &lt;br&gt;- здесь попадает лиш - &quot;Заказать - ПОД ЗАКАЗ Система управления устройством&quot; &lt;br&gt;а надо чтобы - &quot;Заказать - ПОД ЗАКАЗ Система управления устройством.&quot;&lt;br&gt;</description>
</item>

<item>
    <title>Помогите с регулярным выражением (angra)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID8/6349.html#4</link>
    <pubDate>Mon, 25 May 2009 22:22:18 GMT</pubDate>
    <description>На всякий случай уточню&lt;br&gt;&amp;#124;(&#091;^&#092;.&#093;+система&amp;#124;управления&#091;^&#092;.&#093;+)&amp;#124; ищет ( &#091;^&#092;.&#093;+система ) ИЛИ ( управления&#091;^&#092;.&#093;+ ), то есть от точки до система ИЛИ от управления до точки&lt;br&gt;&amp;#124;(&#091;^&#092;.&#093;+(?:система&amp;#124;управления)&#091;^&#092;.&#093;+)&amp;#124; ищет (&#091;^&#092;.&#093;+(система ИЛИ управления) ^&#092;.&#093;+, то есть от точки до (система ИЛИ управления) и до следующей точки&lt;br&gt;Иллюстрация&lt;br&gt;$ perl -E &apos;$_=&quot;asdsa система asddasd управления dfsdf&quot;;s/(&#091;^&#092;.&#093;+система&amp;#124;управления&#091;^&#092;.&#093;+)/&amp;lt;b&amp;gt;$1&amp;lt;&#092;/b&amp;gt;/g;say&apos;&lt;br&gt;&amp;lt;b&amp;gt;asdsa система&amp;lt;/b&amp;gt; asddasd &amp;lt;b&amp;gt;управления dfsdf&amp;lt;/b&amp;gt;&lt;br&gt;$ perl -E &apos;$_=&quot;asdsa система asddasd управления dfsdf&quot;;s/(&#091;^&#092;.&#093;+(?:система&amp;#124;управления)&#091;^&#092;.&#093;+)/&amp;lt;b&amp;gt;$1&amp;lt;&#092;/b&amp;gt;/g;say&apos;&lt;br&gt;&amp;lt;b&amp;gt;asdsa система asddasd управления dfsdf&amp;lt;/b&amp;gt;&lt;br&gt;</description>
</item>

<item>
    <title>Помогите с регулярным выражением (angra)</title>
    <link>https://slinkov.ru/openforum/vsluhforumID8/6349.html#3</link>
    <pubDate>Mon, 25 May 2009 21:40:39 GMT</pubDate>
    <description>А к чему вы тогда привели тот код? И почему в &quot;/($key)/si&quot; вы круглые скобки поставили, а в &quot;&amp;#124;(&#091;^&#092;.&#093;+система&amp;#124;управления&#091;^&#092;.&#093;+)&amp;#124;i&quot; упорно не хотите?&lt;br&gt;</description>
</item>

</channel>
</rss>
