2014-02-11 4 views
0

Я использую следующий код для извлечения метода и свойства из строкиИспользование регулярных выражений извлечения метода и свойства

string pattern = @"@[\w\.\()]+"; 
string value = "Create Account for @DisplayName() (Code : @Code)"; 
var reg = new Regex(pattern); 
var matchs = reg.Matches(value); 
foreach (var match in matchs) 
{ 
    Console.WriteLine(match.ToString()); 
} 

Ниже приведен результат

@DisplayName() 
@Code) 

Это не мой ожидаемый результат, я ожидаемый результат:

@DisplayName() 
@Code 

Как это сделать?

+1

Regex на каком языке? –

+0

Я использую .Net framework 4 – Eagle

ответ

1

Вы разрешаете ) в вашем классе. Силе ) должно предшествовать ( и сделать оба вместе необязательными.

+0

Вам не нужно скрывать '.' внутри класса. – Barmar

+0

Да, хорошее место - я просто скопировал это с части OP и исправил необходимый бит. – Utkanos

+0

Это не работает, когда строка «Создать учетную запись для @DisplayName(). ToString() (Code: @Code)» – Eagle

0

Я предполагаю, что шаблон регулярного выражения должен поддерживать несколько свойств и функций.

@"@\w+(\(\))?(\.\w+(\(\))?)*" 
Смежные вопросы