2013-12-05 3 views
0

У меня есть этот код для замены содержимого между()Regex Заменить строку между []

Regex yourRegex = new Regex(@"\(([^\)]+)\)"); 

      //Example strings 
      string rep1 yourRegex.Replace("This is a (variable) string.", ""); //yields "This is a string." 

Результат "This is a string."

, но у меня есть эта строка «Это [переменная] строка». Теперь, как использовать Regex для того же метода замены?

+0

@evanmcdonnal, что следует использовать вместо этого? – Haney

+1

@DavidHaney Я не совсем уверен, потому что OP предоставил только конечный пример. Если вы кодируете этот конкретный случай, вы должны использовать простой старый «String.Replace», если вы кодируете общий регистр. RegEx не имеет никаких шансов работать, а реализация намного сложнее. Для надежного анализа языка, свободного от контекста, вам нужна некоторая реализация КПК (RegEx - это реализация NFA). – evanmcdonnal

+0

А, я вижу, к чему вы клоните. Вы видели '(variable)' как ключевое слово sorts. Справедливо. – Haney

ответ

1

Использование

Regex yourRegex = new Regex(@"\(.*\)|\[.*\]"); 

Моя версия использует только матчи, в то время как ваши используют группы, которые являются немного более дорогими и ненужными для того, что вы пытаетесь достичь.

+1

большое спасибо! – Federal09

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