Это мой первый опыт работы с C# и частью моего ограниченного опыта с регулярными выражениями, и у меня возникли проблемы с захватом первого совпадения в определенном выражении. Я считаю, что следующий пример сделает его более понятным, чем слова в описании того, что я хочу делать.Захват первого совпадения с регулярным выражением (C#)
Match extractor = (new Regex(@".*\d(?<name>.*)\d.*")).Match("This hopefully will pick up 1Bob9error1 as a name");
Console.WriteLine(extractor.Groups["name"]);
Я хотел бы, чтобы это выражение напечатало «Боб» вместо «ошибки».
У меня есть подозрение, что это как-то связано с? перед соответствующей группой, но я не совсем уверен, какая операция? выполняет в этом конкретном случае. Объяснение наряду с некоторой помощью было бы замечательным.
Спасибо, ребята, вы не представляете, насколько этот сайт помогает начинающему программисту, как я.
(? yourRegEx) означает захваченную группу, которая может иметь имя «имя». Вот почему вы можете использовать extractor.Groups ["name"] –
nickytonline