В чем разница между Group и Match в .NET RegEx?В чем разница между группой и совпадением в .NET RegEx?
ответ
A Match - это объект, который указывает конкретное регулярное выражение, соответствующее (часть) целевого текста. A Group указывает часть соответствия, если исходное регулярное выражение содержит групповые маркеры (в основном шаблон в круглых скобках). Например, с помощью следующего кода:
string text = "One car red car blue car";
string pat = @"(\w+)\s+(car)";
Match m = r.Match(text);
m
будет объектом матча, который содержит две группы - группа 1, от (\w+)
, и что захваченных «один», и 2-й группы (от (car)
), который соответствовал, хорошо, "автомобиль".
Матч - это часть строки, которая соответствует регулярному выражению, и поэтому может быть несколько совпадений внутри строки.
Внутри матча вы можете определить группы, анонимные или именованные, чтобы было легче разделить матч. Простой пример - создать регулярное выражение для поиска URL-адресов, а затем использовать группы внутри, чтобы найти протокол (http), домен (www.web.com), path (/lol/cats.html) и аргументы, а что нет.
// Example I made up on the spot, probably doesn't work very well
"(?<protocol>\w+)://(?<domain>[^/]+)(?<path>/[^?])"
Один образец можно найти несколько раз внутри строки, как я сказал, так что если вы используете Regex.Matches (строка текста) вы получите обратно несколько матчей, каждый из которых состоит из нуля, одного или нескольких групп ,
Эти названные группы можно найти либо путем индексирования по числу, либо с помощью строки. Приведенный выше пример может быть использован, как это:
Match match = pattern.Match(urls);
if (!match.Success)
continue;
string protocol = match.Groups["protocol"].Value;
string domain = match.Groups[1].Value;
Чтобы сделать вещи еще более интересным, одна группа может быть сопоставлен несколько раз, но я рекомендую начать читать documentation.
Вы также можете использовать группы для создания обратных ссылок, а также выполнять частичный поиск и замену, но читайте больше об этом на MSDN.
- 1. В чем разница между «. *?» и "[^"] *»в Regex
- 2. Разница между входной группой и формой-группой
- 3. В чем разница между группами и группой в модуле re?
- 4. В чем разница между группой Keychain и App в iOS
- 5. В чем разница между C# и .NET?
- 6. Разница между панелью и группой
- 7. Разница между диапазоном и группой
- 8. Разница между «=» и «совпадением» в sqlite3, Python?
- 9. Разница между пересечением и совпадением в R
- 10. Adobe Illustrator - В чем разница между слоем и группой?
- 11. В чем разница между группой Instance и Instance
- 12. В чем разница между командой TFS и группой TFS?
- 13. Разница между папкой и группой в Xcode?
- 14. В чем разница между .net 4.0 и .net 4.0.3?
- 15. В чем разница между .NET 4.5.x и .NET 5?
- 16. В чем разница между setpgrp и tcsetpgrp
- 17. В чем разница между \ b и \>, \ <в regex?
- 18. Соответствие между строкой и совпадением слов regex
- 19. В чем разница между выражением лямбда и предикатом в .NET?
- 20. В чем разница между финализацией и удалением в .net?
- 21. В чем разница между «Debug.Print» и «Console.WriteLine» в .NET?
- 22. В чем разница между microsoft.identityModel и system.identityModel в .NET 4.5
- 23. В чем разница между «global :: System» и «System» в .NET?
- 24. В .NET, в чем разница между встроенным ресурсом и ресурсом?
- 25. В чем разница между ManualResetEvent и AutoResetEvent в .NET?
- 26. В чем разница между System.String и System.string в C# .net?
- 27. В чем разница между свойством и функцией readonly в .net?
- 28. В чем разница между абстрактным классом и интерфейсом в .NET?
- 29. В чем разница между приложением и приложением в C# .net?
- 30. В чем разница между App.Config и Web.Config в .Net?