У меня есть следующее регулярное выражение:
(?:\/(?<root>family-resources|employer-resources|newsroom|text-pages))?\/(?:(?<path>[0-9A-z=\-\s]+\/?)+)
Как видите, я пытаюсь настроить две именованные группы захвата - root
и path
.Однако при выполнении этого и проверке групп совпадений нет группы root
- только path
.
Использование C #:
root = match.Groups["root"]?.Value ?? "Text Pages"; // Returns an empty string as the root group is missing.
Мне удалось воспроизвести это, запустив шаблон Regex на https://regex101.com/.
Если вы вставили следующую тестовую строку:
/sitecore/content/Corporate-New/home/employer-resources/back-up-care
Вы заметите, что получаете только одну именованную группу захвата - path
.
Почему root
не возвращается?
Определенно кажется, что я использую правильный синтаксис для именованной группы захвата.Я пытался добавить скобки как вне группы захвата, так и внутри шаблона регулярных выражений, но ни одна из них не сработала.Я думал, может быть, шаблон Regex не был понят.