Если perl также может быть опцией, попробуйте это,
perl -0777 -ne ' while ( /y\(.+?\n(?<!=y)((?-s:^new.+?\n)+)(?<!=y)(new.+?\n)(?=y\(|\Z)/mgs ) { print "$1" } '
С вашими входами
$ cat yoranus.txt
new o85 = x(-1.3);
y(o85, 12.0, 91.2, 5);
y(o85, 12.0, 91.2, 6);
y(o85, 12.0, 91.2, 7);
new o86 = x(-1.3);
new o87 = x(-1.3);
y(o87, 12.0, 91.2, 9);
new o88 = x(-1.3);
new o89 = x(-1.3);
new o90 = x(-1.3);
y(o90, 12.0, 91.2, 3);
new o91 = x(-1.3);
new o92 = x(-1.3);
new o93 = x(-1.3);
new o94 = x(-1.3);
new o95 = x(-1.3);
new o96 = x(-1.3);
y(o96, 12.0, 91.2, 3);
new o97 = x(-1.3);
new o98 = x(-1.3);
new o99 = x(-1.3);
$ perl -0777 -ne ' while ( /y\(.+?\n(?<!=y)((?-s:^new.+?\n)+)(?<!=y)(new.+?\n)(?=y\(|\Z)/mgs ) { print "$1" } ' yoranus.txt
new o86 = x(-1.3);
new o88 = x(-1.3);
new o89 = x(-1.3);
new o91 = x(-1.3);
new o92 = x(-1.3);
new o93 = x(-1.3);
new o94 = x(-1.3);
new o95 = x(-1.3);
new o97 = x(-1.3);
new o98 = x(-1.3);
$
Относительно любых существующих ошибок подключения. Следующая проблема имеет дело с фильтрами исключения. Пользователь явно не заявил, что они хотели их быть фактическим фильтром в смысле того, когда они выполняются, но по моему скромному мнению он подразумевается логикой.
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx? FeedbackID=401668
Помимо той проблемы, хотя, нет никаких проблем, я могу найти или знать, которых связаны с тем, что Вы ищете. Я думаю, что это делало бы хорошее, чтобы иметь отдельный вопрос, который явно вызывает хотение для фильтров исключения стиля VB.Net.
я не волновался бы слишком много о представлении дублирующегося вопроса, если Вы сделали немного должной осмотрительности, ища существующую. Если будет простофиля, то Mads обманет его соответственно и свяжет Вас с основным запросом.
Что касается части получения официального ответа от команды C#, Вы, вероятно, получите это когда Вы любой 1) зарегистрируйте ошибку подключения или 2) будьте обмануты против основной ошибки. Я действительно сомневаюсь, что существует официальная причина / выравнивание там прямо сейчас.
Вот мой предположение по проблеме: Мое предположение - то, что эта функция просто не была на исходном наборе функций C# 1.0 и с этого времени не было достаточного требования превратить его на язык. C# и команда VB проводят невероятное количество времени, оценивающее функции языка в начале каждого цикла поставки. Мы должны сделать приблизительно очень трудные сокращения время от времени. Без достаточного спроса существует, очень мало случается, функция превратит его на язык.
до недавнего времени я держал пари, что Вам будет трудно находить 1 из 10 человек, которые поняли различие между Попыткой/Когда VB.NET и просто использованием простого, если оператор в C# ловит блок. Это, кажется, немного больше на умах народов в последнее время поэтому, возможно, это превратит его в будущую версию языка.
Я не полагаю, что Java имеет опцию фильтра также. Предположение, что, если бы это сделало, мы также видели бы один в C#. VB.net, вероятно, имеет тот случайно, учитывая, что команда VB, запущенная с чистого листа.
Одной вещью, которая могла бы работать в Вашу пользу до получения этой опции в будущей версии C#, является установленная цель Microsoft поддержать четность между laguage функциями в будущих версиях C# и VB.net. Я выдвинул бы свой arguement на основе этого.
http://www.chriseargle.com/post/2009/01/Parity-Between-Languages.aspx
В отношении первого вопроса, если было публичное заявление, то это больше, чем, вероятно, поставилось сеть где-нибудь, в этом случае, Google должен поднять что-то (если это существует).
, Если это - прямое электронное письмо с командой C#, тогда более, чем вероятно, что это находится под NDA, таким образом, это не было бы в состоянии быть опубликованным так или иначе.
Со вторым вопросом, существует возможность поиска на Microsoft Connect, которую они предлагают Вам использовать прежде, чем ввести новое предложение. Если Вы не можете найти его, то, вероятно, нет того.
Моя рекомендация состояла бы в том, чтобы вставить предложение и затем продвинуть его, чтобы заставить других высказывать мнение о нем.
Используя Фильтр Исключения Вводит , может быть более простым, чем использование обходного решения делегата.
Для реального ответа на Ваш вопрос Вам будет нужен ответ от Anders Hejlsberg или кого-то, кто был на встречах первоначального проекта. Вы могли бы попытаться видеть, можно ли было спросить его интервьюером Канала 9 в следующий раз , у команды разработчиков C# берут интервью .
я предположил бы, что, когда исходное решение было принято, фильтры исключения рассматривались как ненужная сложность, которая могла бы принести больше вреда, чем пользы. Можно, конечно, видеть требование остаться 'тихими' о бездоказательных функциях в этом интервью о решении не поддерживать контролируемые исключительные ситуации: Проблема с Контролируемыми исключительными ситуациями .
я думаю, что postmoterm диагностические сценарии спорят сильно для обеспечения доступа к исключению, просачивается язык. Однако те сценарии не могли быть ясно сформулированы в то время. Также для тех сценариев действительно нужна надлежащая поддержка инструментов, которая, конечно, не была доступна в V1. Наконец могут быть большие отрицательные стороны о добавлении этой опции, которую мы не рассматриваем.
, Если нет ошибки подключения на этом, необходимо ввести один и поощрить других голосовать за него. [Я рекомендовал бы просить доступ к функции CLR вместо того, чтобы пытаться разработать, как это помещается в язык.]
Поскольку я понимаю их, во время переброска, наконец, обработчики во внутренних функциях выполняются, и это - то, что создает проблемы для Вас.
, Но скажем, у Вас есть фильтр исключения, который передает исключение через, на самом деле не повторно бросая его. Необходимо будет все еще обработать его так или иначе где-нибудь, и Вы будете работать в тех же видах проблем (наконец эффекты) туда.
Поэтому, если я не неправильно понимаю что-то, нет большого усиления от того, что поддерживало языком фильтры исключения.