VB.NET Сопоставить строку между круглыми скобками (квадратными скобками)

Ищем шаблон для сопоставления текста между скобками. Например: "(this is) a (test)" должен выводить

"this is"
"test"

Использование Dim m As Match = Regex.Match(str, pattern, RegexOptions.Multiline)

Я искал stackOverflow, Google и пробовал примеры на RegExr, но у меня ничего не работает.

Они работают с RegExr, но не с VB.NET.

"\(([^)(]++|(?R))+\)" - вложенный квантификатор ошибки

"(?<=\<p\>)(.*?)(?=<\/p\>)" - квантификатор после ничего

Другие вернут: "this is) a (test" - соответствие дальним внешним скобкам

PS Я мог бы сделать то же самое для

[],"",{}

было бы хорошо иметь их все в одном месте для тех, кто ищет на vb.net


person Community    schedule 24.08.2012    source источник


Ответы (1)


\((.*?)\)

Ваше регулярное выражение очень сложное! Этот будет захватывать весь текст между двумя () и соответствовать внутреннему тексту. Поэкспериментируйте с этим здесь.

person David B    schedule 24.08.2012
comment
Спасибо! Я обнаружил, что у меня было две ошибки (перешел с javascript на VB.NET). Во-первых, регулярное выражение не поддерживает те же функции. Другой использует Match вместо Matches. - person ; 24.08.2012
comment
@ user759885 Нет проблем. Если мой ответ помог вам, отметьте его принятым, поставив галочку под подсчетом голосов. - person David B; 24.08.2012
comment
Не могли бы вы объяснить, как работает это регулярное выражение? Я пытаюсь настроить функцию, которая удаляет текст в японских скобках (()), но я недостаточно знаю о регулярных выражениях, чтобы изменить вашу. - person Lou; 12.01.2015