<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: regexp, отрицание подстоки в строке</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/6919.html</link>
    <description>Привет всем!&lt;br&gt;немогу понять как сделать простое отрицание, приведу пример:&lt;br&gt;&quot;tag какая то строка tagc&quot; - должно пропустить&lt;br&gt;&quot;tag какая tag то строка tagc&quot; - нет&lt;br&gt;&quot;tag какая то строка tag еще строка tagc tagc &quot; должно вырезаьть &quot;еще строка&quot;&lt;br&gt;&lt;br&gt;пробывал разное, например /$tag(?!$tag)$tagc/ или бред типа /$tag(?:.(?!$tag)*)$tagc/,&lt;br&gt;как то легче не стало.&lt;br&gt;Буду благодарен за совет!&lt;br&gt;regards, procool&#064;&lt;br&gt;</description>

<item>
    <title>regexp, отрицание подстоки в строке (procool)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/6919.html#2</link>
    <pubDate>Thu, 08 Nov 2007 17:09:04 GMT</pubDate>
    <description>&amp;gt;P.S. Исходя из примеров могу предположить, что более широкой задачей является парсинг &lt;br&gt;&amp;gt;тегов.  И похоже решать вы ее собрались неправильным способом, но &lt;br&gt;&amp;gt;он привел к задаче, которую интересно было решить :) &lt;br&gt;&lt;br&gt;Спасибо тебе. вообще давно хотелось сделать модуль один - некий smarttag, который позволял бы объектными методами работать с парсингом темплейтов и заменять в них какие то данные на то что хотелось бы пользователю.&lt;br&gt;Это могли быть любые теги, например список пользователей или список комнат на чате со вложенным списком пользователей, у которых еще есть вложеный список флагов.&lt;br&gt;Притом сделать управление обработки этих тегов максимально простым и чтобы программисту неприходилось задумываться о парсинге вообще.&lt;br&gt;&lt;br&gt;Реализация которую ты предложил работает, спасибо тебе огромное. Но идея действительно была немного неверна - так как она требует буфферизации. А я думаю никому не захочется буферизировать весь список пользователей или правил фаервола или чего там еще может быть.. потому я оставлю наработку к</description>
</item>

<item>
    <title>regexp, отрицание подстоки в строке (angra)</title>
    <link>https://www.opennet.dev/openforum/vsluhforumID9/6919.html#1</link>
    <pubDate>Thu, 08 Nov 2007 04:06:28 GMT</pubDate>
    <description>Не сказал бы что это простое отрицание. Хотя бы потому что вряд ли это доступно на не PCRE. &lt;br&gt;Для начала внятно ставим задачу: нужно захватить произвольной длинны последовательность произвольных символов, в которой не встречается определенная подстрока. Теперь немного переформулируем, ограничение подстроки перенесем в определение подходящих символов, то есть подходящими символами являются те за которыми не следует определенная подстрока. Такая проверка делается, как вы правильно догадались, на основе заглядывания вперед. теперь собираем&lt;br&gt;.  - произвольный символ&lt;br&gt;.(?!$tag)  - произвольный символ, за которым не идет подстрока&lt;br&gt;(?:.(?!$tag)) - группировка для quantifier&lt;br&gt;(?:.(?!$tag))* - собственно искомая последовательность&lt;br&gt;((?:.(?!$tag))*) - искомая последовательность с захватом&lt;br&gt;&lt;br&gt;&lt;br&gt;P.S. Исходя из примеров могу предположить, что более широкой задачей является парсинг тегов.  И похоже решать вы ее собрались неправильным способом, но он привел к задаче, которую интересно было решить :)&lt;br&gt;</description>
</item>

</channel>
</rss>
