Я делал небольшую работу с регулярным выражением за прошедшую неделю и сумел добиться большого прогресса, однако я все еще довольно n00b. У меня есть регулярное выражение, написанное на С#:
string isMethodRegex =
@"\b(public|private|internal|protected)?\s*(static|virtual|abstract)?"+
@"\s*(?<returnType>[a-zA-Z\<\>_1-9]*)\s(?<method>[a-zA-Z\<\>_1-9]+)\s*\"+
@"((?<parameters>(([a-zA-Z\[\]\<\>_1-9]*\s*[a-zA-Z_1-9]*\s*)[,]?\s*)+)\)";
IsMethodRegex = new Regex(isMethodRegex);
По какой-то причине при вызове регулярного выражения IsMethodRegex.IsMatch() он зависает в течение 30 + секунд в следующей строке:
"\t * Returns collection of active STOP transactions (transaction type 30) "
Кто-нибудь, как работает внутренняя часть Regex, и почему это будет так медленно при сопоставлении этой строки, а не с другими. У меня была игра с ним, и я обнаружил, что если я выберу * и круглую скобку, тогда все будет хорошо. Возможно, регулярное выражение плохо написано?
Любая помощь будет настолько оценена.