Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Регулярные выражения

10K
01 июня 2010 года
Cybernetic
106 / / 22.07.2009
Задача: вытащить из строки все подстроки, которые находятся между символами '(' и ')'. Написал следующий регэксп:
 
Код:
string pattern = @"\([^\)]*\)";
      string str = "w2fwf(123)wfw(242)wfgwf)fw";

      for (int i = 0; i < matches.Count; i++)
      {
        Console.WriteLine(matches.Value);
      }

Проблема в том, что он возвращает подстроки вместе со скобками. Как сделать, чтобы возвращались подстроки без скобок, и можно было бы не делать отдельных дополнительных преобразований?
5
01 июня 2010 года
hardcase
4.5K / / 09.08.2005
 
Код:
private static Regex pattern = new Regex(@"\((?<val>.*?)\)", RegexOptions.Compiled | RegexOptions.Singleline);

foreach(var m in pattern.Matches(str)) {
    if(m.Success)  {
       var val = m.Groups["val"].Value; // то что между скобок
    }
}
8.2K
01 июня 2010 года
bagie2
299 / / 26.10.2008
мой вариант:
 
Код:
string pattern = @"(?<=\().*?(?=\))";


//added:
hardcase первый написал)
10K
01 июня 2010 года
Cybernetic
106 / / 22.07.2009
Цитата: hardcase
 
Код:
private static Regex pattern = new Regex(@"\((?<val>.*?)\)", RegexOptions.Compiled | RegexOptions.Singleline);

foreach(var m in pattern.Matches(str)) {
    if(m.Success)  {
       var val = m.Groups["val"].Value; // то что между скобок
    }
}



Цитата: bagie2
мой вариант:
 
Код:
string pattern = @"(?<=\().*?(?=\))";


//added:
hardcase первый написал)



Спасибо! Оба варианта работают. Но мне больше нравится второй вариант, без группировок, его буду использовать.

//Надо все-таки изучить эти регэкспы... Не подскажите качественную литературу на эту тему? Если на примерах C# будет, то вообще супер.

5
01 июня 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Cybernetic
Спасибо! Оба варианта работают. Но мне больше нравится второй вариант, без группировок, его буду использовать.

Группировки используются в обоих случаях, а мой вариант еще и легче читается.

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог