2015-06-25 3 views
0

Что делает это регулярное выражение? -Что делает регулярное выражение " (([^)] *) )" делать?

Regex.Match(file.ToString(), @"\(([^)]*)\)").Groups[1].Value.ToString();

(= начальная paranthesis

) = окончание paranthesis

[^)] * = все символы, которые не заканчиваются paranthesis

Какова потребность в другой () обертывание вокруг квадратных скобок?

+0

Вы должны взглянуть на [regex101] (https://regex101.com/), который содержит тесты и объяснения. – Delgan

+0

@ Delgan: Хотя, к сожалению, не для .Net-стиля регулярного выражения. Но вкусы, которые он имеет, очень похожи (и вышеизложенное одно и то же в нескольких вариантах). –

ответ

1

Для чего нужна другая() упаковка вокруг квадратных скобок?

Это определяет capture group для нуля или более символов, сопоставимых по [^)]*, так что вы можете получить только текст, который соответствовал той части, без ( и ) буквенных символов вокруг него. Например, при вводе (foo) общее совпадение (foo), но группа захвата содержит foo.

+0

В частности, опубликованный код использует 'Groups [1]' для возврата к этой конкретной группе захвата. – tripleee

Смежные вопросы