<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Возможно ли на regexp perl удалить определенное число байтов?</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/10297.html</link>
    <description>Есть строка текста в которой в произвольном месте может содержаться &quot;мусорный&quot; текст который нужно вычистить. У &quot;мусора&quot; следующие параметры он оканчивается на &#092;x00&#092;x00 (в hex представлении), а в начале &#092;xE3&#092;x33 но при этом он не всегда находится в самом начале иногда перед ним бывает 1 или 2 символа. При этом длинна &quot;мусорной&quot; строки всегда 70 байт. Встречается &quot;мусор&quot; произвольное число раз.&lt;br&gt;&lt;br&gt;Возможно ли на Perl составить такое регулярное выражение или два три выражения которое удаляло бы ненужное?&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>

<item>
    <title>Возможно ли на regexp perl удалить определенное число байтов? (U.N.Owen)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/10297.html#18</link>
    <pubDate>Sat, 28 Mar 2020 16:45:14 GMT</pubDate>
    <description>&amp;gt; Ага. Разжуй две ситуации, в которых твой regex не сработал: &lt;br&gt;&amp;gt;    1. Перед &#092;xE3&#092;x33 есть ОДИН символ &lt;br&gt;&lt;br&gt;И?&lt;br&gt;&#123;0, 2&#125;, если что, включает в себя 1.&lt;br&gt;&lt;br&gt;&amp;gt;    2. Перед &#092;xE3&#092;x33 есть ДВА символа. Строка осталась 70 &lt;br&gt;&amp;gt; байтов. А ты ожидаешь 72.&lt;br&gt;&lt;br&gt;Регексп работает и ожидает 70 символов. (?=.....) &amp;#8212; это просмотр вперёд, если что. Далее отсчет идет с начала строки.&lt;br&gt;</description>
</item>

<item>
    <title>Возможно ли на regexp perl удалить определенное число байтов? (ACCA)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/10297.html#17</link>
    <pubDate>Mon, 10 Feb 2020 18:06:54 GMT</pubDate>
    <description>&amp;gt;&amp;gt; (в hex представлении), а в начале &#092;xE3&#092;x33 но при этом он &lt;br&gt;&amp;gt;&amp;gt; не всегда находится в самом начале иногда перед ним бывает 1 &lt;br&gt;&amp;gt;&amp;gt; или 2 символа. При этом длинна &quot;мусорной&quot; строки всегда 70 байт.&lt;br&gt;&amp;gt; Этому определению строки строго соответствует регексп &#091;code&#093;(?=.&#123;0,2&#125;&#092;xE3&#092;x33).&#123;68&#125;&#092;x00&#123;2&#125;&#091;/code&#093; &lt;br&gt;&amp;gt; Дальше понятно, или нужно разжевывать?&lt;br&gt;&lt;br&gt;Ага. Разжуй две ситуации, в которых твой regex не сработал:&lt;br&gt;   1. Перед &#092;xE3&#092;x33 есть ОДИН символ&lt;br&gt;   2. Перед &#092;xE3&#092;x33 есть ДВА символа. Строка осталась 70 байтов. А ты ожидаешь 72.&lt;br&gt;</description>
</item>

<item>
    <title>Возможно ли на regexp perl удалить определенное число байтов? (U.N.Owen)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/10297.html#16</link>
    <pubDate>Sat, 08 Feb 2020 11:05:45 GMT</pubDate>
    <description>&amp;gt; Есть строка текста в которой в произвольном месте может содержаться &quot;мусорный&quot; текст &lt;br&gt;&amp;gt; он оканчивается на &#092;x00&#092;x00 &lt;br&gt;&amp;gt; (в hex представлении), а в начале &#092;xE3&#092;x33 но при этом он &lt;br&gt;&amp;gt; не всегда находится в самом начале иногда перед ним бывает 1 &lt;br&gt;&amp;gt; или 2 символа. При этом длинна &quot;мусорной&quot; строки всегда 70 байт. &lt;br&gt;&lt;br&gt;Этому определению строки строго соответствует регексп &#091;code&#093;(?=.&#123;0,2&#125;&#092;xE3&#092;x33).&#123;68&#125;&#092;x00&#123;2&#125;&#091;/code&#093; Дальше понятно, или нужно разжевывать?&lt;br&gt;</description>
</item>

<item>
    <title>Возможно ли на regexp perl удалить определенное число байтов? (Аноним)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/10297.html#15</link>
    <pubDate>Fri, 07 Feb 2020 11:37:00 GMT</pubDate>
    <description>Примерно же понятно. Есть какой-то бинарный протокол, по которому чанки данных идут с каким-то заголовком. Так-то конечно надо изучать протокол и делать unpack по формату. &lt;br&gt;Но регулярки fine too, это же перл. &lt;br&gt;</description>
</item>

<item>
    <title>Возможно ли на regexp perl удалить определенное число байтов? (Pahanivo)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/10297.html#14</link>
    <pubDate>Fri, 07 Feb 2020 11:02:20 GMT</pubDate>
    <description>&amp;gt; Думал сначала написать ?=&#091;^&#092;x00&#093;, а потом исправил и знак равно забыл убрать. &lt;br&gt;&amp;gt; Регулярку конечно не тестил.&lt;br&gt;&amp;gt; Посылать неправильно. Вопрос корректный. Возможно? Возможно. Он же не попросил сразу годного &lt;br&gt;&amp;gt; в продакшен решения.&lt;br&gt;&lt;br&gt;Дак афтур и толком задачу не сформулировал - в оригинальной формулировке ее вообще решить невозможно.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Возможно ли на regexp perl удалить определенное число байтов? (Pahanivo)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/10297.html#13</link>
    <pubDate>Fri, 07 Feb 2020 11:01:13 GMT</pubDate>
    <description>&amp;gt; Конструкция смотрит 2 нулевых байта, после которых нет нулевых байтов, после чего &lt;br&gt;&amp;gt; удаляет их вместе с 68 байтами стоящими перед ними.&lt;br&gt;&amp;gt; Если &#092;0&#092;0 в длину удаляемой строки не входят, нужно вместо &#123;68&#125; написать &lt;br&gt;&amp;gt; &#123;70&#125;.&lt;br&gt;&lt;br&gt;Значит я правильно понял.&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Возможно ли на regexp perl удалить определенное число байтов? (Аноним)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/10297.html#12</link>
    <pubDate>Thu, 06 Feb 2020 21:50:11 GMT</pubDate>
    <description>&amp;gt;&amp;gt; $clean = do&#123; use bytes ; $str =~ s/.&#123;68&#125;&#092;x00&#123;2&#125;(?!=&#092;x00)//g ; $str &#125; &lt;br&gt;&amp;gt; (?!=&#092;x00) как я понимаю эта конструкция будет искать &#092;x00&#123;2&#125; после которых нет &lt;br&gt;&amp;gt; &#092;x00, а в строке может быть и несколько кусков такого мусора. &lt;br&gt;&amp;gt; Так что не сработает. Я поступил в &quot;лоб&quot; развернул строку и &lt;br&gt;&amp;gt; искал уже с конца &#092;x00&#123;2&#125; и потом резал 70 байт.&lt;br&gt;&lt;br&gt;Да, ?!= - опечатка, должно быть ?!&lt;br&gt;&lt;br&gt;Конструкция смотрит 2 нулевых байта, после которых нет нулевых байтов, после чего удаляет их вместе с 68 байтами стоящими перед ними.&lt;br&gt;Если &#092;0&#092;0 в длину удаляемой строки не входят, нужно вместо &#123;68&#125; написать &#123;70&#125;.&lt;br&gt;</description>
</item>

<item>
    <title>Возможно ли на regexp perl удалить определенное число байтов? (Аноним)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/10297.html#11</link>
    <pubDate>Thu, 06 Feb 2020 21:47:38 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Это не сложное выражение.&lt;br&gt;&amp;gt; (?!=&#092;x00) - что это значит?&lt;br&gt;&amp;gt; Есть: &lt;br&gt;&amp;gt; (?=ххх) заглядывание вперед &lt;br&gt;&amp;gt; (?!xxx) заглядывание вперед с отрицанием &lt;br&gt;&amp;gt; а что у вас нифига не понятно, думаю что скорее второе.&lt;br&gt;&amp;gt; Вообще в силу формулировки афтара, его следовало бы послать ... формулировать, а &lt;br&gt;&amp;gt; не гадать не пойми на чем.&lt;br&gt;&lt;br&gt;Думал сначала написать ?=&#091;^&#092;x00&#093;, а потом исправил и знак равно забыл убрать. Регулярку конечно не тестил.&lt;br&gt;Посылать неправильно. Вопрос корректный. Возможно? Возможно. Он же не попросил сразу годного в продакшен решения. &lt;br&gt;</description>
</item>

<item>
    <title>Возможно ли на regexp perl удалить определенное число байтов? (Pahanivo)</title>
    <link>https://www.opennet.me/openforum/vsluhforumID9/10297.html#10</link>
    <pubDate>Thu, 06 Feb 2020 09:27:48 GMT</pubDate>
    <description>&amp;gt; Согласен что нужно четко описывать, но проблема в том что эти 1-2 &lt;br&gt;&amp;gt; символа никак не отличить от нормальной строки поэтому я пошел другим &lt;br&gt;&amp;gt; путем. Сначала перевернул строку, а потом искал &#092;x00&#092;x00 и от них &lt;br&gt;&amp;gt; уже искал 70 байт и вырезал, потом строку обратно переворачивал.&lt;br&gt;&amp;gt; $row = reverse($row); &lt;br&gt;&amp;gt; $row=~s/&#092;x00&#092;x00.&#123;68&#125;//g; &lt;br&gt;&amp;gt; $row = reverse($row); &lt;br&gt;&amp;gt; Возможно перевороты туда сюда и не оптимальны но это работает.&lt;br&gt;&lt;br&gt;Это сферическое &quot;черезжопу&quot; в вакууме. &lt;br&gt;Внизу есть решение нарезки по 70.&lt;br&gt;</description>
</item>

</channel>
</rss>
