<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Помогите с регексами</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/4606.html</link>
    <description>Пытаюсь нормально настроить squidguard.cgi&lt;br&gt;&lt;br&gt;Но в нем не правильно указано регулярное выражение для парсинга строки&lt;br&gt;&lt;br&gt;строка:&lt;br&gt;clientaddr=192.168.16.1+clientname=+clientident=login+srcclass=sample-clients+targetclass=porn+url=http://www.sex.ru/&lt;br&gt;&lt;br&gt;Код для парсинга&lt;br&gt;  if (defined($query)) &#123;&lt;br&gt;    while ($query =~ /^&#092;&amp;?(&#091;^&#092;&amp;=&#093;+)=&#092;&quot;(&#091;^&#092;&quot;&#093;*)&#092;&quot;(.*)/ &amp;#124;&amp;#124; $query =~ /^&#092;&amp;?(&#091;^&#092;&amp;=&#093;+)=(&#091;^&#092;&amp;=&#093;*)(.*)/) &#123;&lt;br&gt;      my $key = $1;&lt;br&gt;      my $value = $2; &lt;br&gt;      $value = &#037;word-&amp;gt;&#123;&quot;unknown&quot;&#125;-&amp;gt;&#123;$lang&#125; unless(defined($value) &amp;&amp; $value &amp;&amp; $value ne &quot;unknown&quot;);&lt;br&gt;      $query = $3;&lt;br&gt;      if ($key =~ /^(clientaddr&amp;#124;clientident&amp;#124;clientuser&amp;#124;clientgroup&amp;#124;targetgroup&amp;#124;url)$/) &#123;&lt;br&gt;        eval &quot;&#092;$$key = &#092;$value&quot;;&lt;br&gt;      &#125;&lt;br&gt;      if ($query =~ /^url=(.*)/) &#123;&lt;br&gt;        $url = $1;&lt;br&gt;        last;&lt;br&gt;      &#125;&lt;br&gt;    &#125;&lt;br&gt;  &#125;&lt;br&gt;&lt;br&gt;Если убрать в выражении кавычки - получим что все кроме урла забьется в clientaddr. А иначе - вобще не парсит толком</description>

<item>
    <title>Помогите с регексами (гость)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/4606.html#2</link>
    <pubDate>Wed, 18 Jun 2008 03:36:47 GMT</pubDate>
    <description>&amp;gt;&#091;оверквотинг удален&#093;&lt;br&gt;&amp;gt;т.о. образом нужно заменить &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;$query =~ /^&#092;&amp;?(&#091;^&#092;&amp;=&#093;+)=&#092;&quot;(&#091;^&#092;&quot;&#093;*)&#092;&quot;(.*)/ &amp;#124;&amp;#124; $query =~ /^&#092;&amp;?(&#091;^&#092;&amp;=&#093;+)=(&#091;^&#092;&amp;=&#093;*)(.*)/ &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;на &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;$query =~ /^&#092;+?(&#091;^&#092;+=&#093;+)=&#092;&quot;(&#091;^&#092;&quot;&#093;*)&#092;&quot;(.*)/ &amp;#124;&amp;#124; $query =~ /^&#092;+?(&#091;^&#092;+=&#093;+)=(&#091;^&#092;+=&#093;*)(.*)/ &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;но честно говоря, криво это как-то всё, может где-то ещё что вылезет &lt;br&gt;&amp;gt;:( &lt;br&gt;&lt;br&gt;Поменять надо + на &amp; и все будет ок&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Помогите с регексами (ihor)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/4606.html#1</link>
    <pubDate>Wed, 31 Aug 2005 16:51:55 GMT</pubDate>
    <description>то, что сразу бросается в глаза:&lt;br&gt;скрипт ожидает в качестве разделителя &apos;&amp;&apos; а в указанной строке используется &apos;+&apos;. &lt;br&gt;т.о. образом нужно заменить &lt;br&gt;&lt;br&gt;$query =~ /^&#092;&amp;?(&#091;^&#092;&amp;=&#093;+)=&#092;&quot;(&#091;^&#092;&quot;&#093;*)&#092;&quot;(.*)/ &amp;#124;&amp;#124; $query =~ /^&#092;&amp;?(&#091;^&#092;&amp;=&#093;+)=(&#091;^&#092;&amp;=&#093;*)(.*)/&lt;br&gt;&lt;br&gt;на &lt;br&gt;&lt;br&gt;$query =~ /^&#092;+?(&#091;^&#092;+=&#093;+)=&#092;&quot;(&#091;^&#092;&quot;&#093;*)&#092;&quot;(.*)/ &amp;#124;&amp;#124; $query =~ /^&#092;+?(&#091;^&#092;+=&#093;+)=(&#091;^&#092;+=&#093;*)(.*)/&lt;br&gt;&lt;br&gt;но честно говоря, криво это как-то всё, может где-то ещё что вылезет :(</description>
</item>

</channel>
</rss>
