я хочу найти значения между {} - PullRequest
2 голосов
/ 17 мая 2010

Я работаю с регулярными выражениями (Regex), но не могу найти точный вывод. Я хочу найти значения между двумя фигурными скобками

{ Value } = value

Я использую следующую схему, но не получаю точный вывод; сначала не удаляется "{" ...

string pattern = "\\{*\\}"; 

Если мое значение {girish} возвращается {girish

Вместо этого я хочу girish в качестве вывода ...

Ответы [ 3 ]

4 голосов
/ 17 мая 2010

Я удивлен, что шаблон работает с самого начала - он должен соответствовать нулю или большему количеству фигурных скобок. Вам необходимо сгруппировать содержимое в фигурной скобке:

string pattern = @"\{([^}]*)\}";

Затем извлеките содержимое соответствующей группы. Вы не показали, какой код вы используете для извлечения вывода, но в этом случае он будет в группе 1. Например:

using System;
using System.Text.RegularExpressions;

class Test
{
    static void Main()
    {
        string pattern = @"\{([^}]*)\}";
        Regex regex = new Regex(pattern);
        string text = "{Key} = Value";
        Match match = regex.Match(text);
        string key = match.Groups[1].Value;
        Console.WriteLine(key);
    }    
}
3 голосов
/ 17 мая 2010
(?<=\{)(.*?)(?=\})

даст вам только то, что между ними.

Обязательное примечание:
Помните, что Regex не поможет, если скобки вложены - вам понадобится что-то со стеком.

1 голос
/ 17 мая 2010

Попробуйте с этим шаблоном:

\{(.*)\}

Обратные слеши, возможно, придется экранировать дальше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...