﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Релиб / Веб-программирование / Perl  / $str =~ /&amp;lt;regex-баланса-скобок&amp;gt;/ / Latest Posts</title><generator>InstantForum.NET v4.1.4</generator><description>Релиб</description><link>http://www.relib.com/forums/</link><webMaster>robot@relib.com</webMaster><lastBuildDate>Sat, 22 Nov 2008 19:21:14 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: $str =~ /&amp;lt;regex-баланса-скобок&amp;gt;/</title><link>http://www.relib.com/forums/Topic856741-18-1.aspx</link><description>Отладку регвыражений... а чем-то можно отлажвать? каким-то инструментом? Неслышал об этом к сожалению :(.. Я так - тестирую разные варианты - засекаю среднюю скорость отработки скрипта...</description><pubDate>Mon, 14 Mar 2005 14:27:00 GMT</pubDate><dc:creator>PoizOn</dc:creator></item><item><title>RE: $str =~ /&amp;lt;regex-баланса-скобок&amp;gt;/</title><link>http://www.relib.com/forums/Topic856741-18-1.aspx</link><description>PDK - это для perl, я имел ввиду отладку самих регулярных выражений в perl</description><pubDate>Mon, 14 Mar 2005 14:17:00 GMT</pubDate><dc:creator>Alexey</dc:creator></item><item><title>RE: $str =~ /&amp;lt;regex-баланса-скобок&amp;gt;/</title><link>http://www.relib.com/forums/Topic856741-18-1.aspx</link><description>Мне нравиться - отладчик из PDK от ActiveState. Если речь об этой отладке...</description><pubDate>Mon, 14 Mar 2005 13:47:00 GMT</pubDate><dc:creator>PoizOn</dc:creator></item><item><title>RE: $str =~ /&amp;lt;regex-баланса-скобок&amp;gt;/</title><link>http://www.relib.com/forums/Topic856741-18-1.aspx</link><description>чем отлаживаете?</description><pubDate>Mon, 14 Mar 2005 13:12:00 GMT</pubDate><dc:creator>Alexey</dc:creator></item><item><title>RE: $str =~ /&amp;lt;regex-баланса-скобок&amp;gt;/</title><link>http://www.relib.com/forums/Topic856741-18-1.aspx</link><description>Да - забыл привести результат работы скрипта:first: good 123&lt;BR&gt;second bad AZD&lt;BR&gt;third good abc&lt;BR&gt;fourth well</description><pubDate>Thu, 10 Feb 2005 09:34:00 GMT</pubDate><dc:creator>PoizOn</dc:creator></item><item><title>RE: $str =~ /&amp;lt;regex-баланса-скобок&amp;gt;/</title><link>http://www.relib.com/forums/Topic856741-18-1.aspx</link><description>Ну, как-то туманно вы объяснили задачу... Тем не менее попробую подсказать. Для начала - я думаю что операторы условия вам не нужны, а просто нужно создать шаблон регулярного выражения, которое будет пропускать только нужные вам значения.&lt;BR&gt;Удобно в вашем примере использовать переменные  $1 $2 и т.д.&lt;BR&gt;То есть например:###### string #########&lt;BR&gt;good 123&lt;BR&gt;bad AAA&lt;BR&gt;good aaa&lt;BR&gt;well&lt;BR&gt;#######################Можно пропарсить кодом, вида:$string=~ m/(good [0-9]+)\s+(bad [A-Z]+)\s+(good [a-z]+)\s+(well)/g;print &amp;quot;first: $1&lt;br&gt;second $2&lt;br&gt;third $3&lt;br&gt;fourth $4&lt;br&gt;&amp;quot;; </description><pubDate>Thu, 10 Feb 2005 09:33:00 GMT</pubDate><dc:creator>PoizOn</dc:creator></item><item><title>$str =~ /&amp;lt;regex-баланса-скобок&amp;gt;/</title><link>http://www.relib.com/forums/Topic856741-18-1.aspx</link><description>вопрос: возможен ли&lt;BR&gt;$str =~ /некий-REGEX/&lt;BR&gt;, возвращающий &amp;quot;совпадения&amp;quot; при условии:1. $str может быть одно- или многострочной строкой&lt;BR&gt;2. первый символ $str должен быть не пробельным&lt;BR&gt;3. имеет место баланс скобок, либо их отсутствие, например, в случае:&lt;BR&gt;[code]&lt;BR&gt;#########################&lt;BR&gt;&amp;quot;&lt;BR&gt;string0&lt;BR&gt;stringA ()&lt;BR&gt;nvl ((&lt;BR&gt;  select &lt;BR&gt;         months_between(sysdate,&amp;amp;due_dte) &lt;BR&gt;    from dual),0) &amp;amp;due_mnths_back ()&lt;BR&gt;  do funcB&lt;BR&gt;-1 &amp;amp;some_flag_C&lt;BR&gt;&amp;quot;&lt;BR&gt;#########################&lt;BR&gt;[/code]&lt;BR&gt; - желаемым результатом был бы массив из элементов:&lt;BR&gt;[code]&lt;BR&gt;@sol = (&amp;quot;string0&amp;quot;,                                 # нуль скобок = баланс&amp;quot;stringA ()&amp;quot;,                              # баланс&amp;quot;nvl ((                                    # баланс в много-&lt;BR&gt;  select                                   # строчной подстроке, &lt;BR&gt;         months_between(sysdate,&amp;amp;due_dte)  # начатой с 1го `непробела`&lt;BR&gt;    from dual),0) &amp;amp;due_mnths_back ()&amp;quot;,     # &amp;quot;-1 &amp;amp;some_flag_C&amp;quot;                          # нуль скобок = баланс)&lt;BR&gt;[/code]&lt;BR&gt; - т.е. с единственной отбракованной строкой &lt;BR&gt;&amp;quot;  do funcB&amp;quot; как не удовлетворяющий (2)&lt;BR&gt;, и не являющийся продолжением nvl(.....(посимвольная работа со стеком уже реализована (в C-подобном стиле)&lt;BR&gt; и припасена на крайний случай как неприятная необходимость.)заранее спасибо за помощь.</description><pubDate>Thu, 10 Feb 2005 01:47:00 GMT</pubDate><dc:creator>offender</dc:creator></item></channel></rss>