Я пытаюсь понять, как (? < name> pattern) работает в Regex. Есть ли хорошая ссылка или кто-то может предложить простое объяснение?Помогите понять шаблоны имен регулярных выражений
ответ
От Mastering Regular Expressions:
Названного захват:
\b(?<Area>\d\d\d\)-(?<Exch>\d\d\d)-(?<Num>\d\d\d\d)\b
Эти "заполняют имена" Area, обе и Num с компонентами телефонного номера США. Затем программа может ссылаться на каждую подстроку подстроки через ее имя, например, RegexObj.Groups («Area») в VB.NET и большинстве других языков .NET, RegexObj.Groups [«Area»] в C#, RegexObj.group («Area») в Python и $ matches [«Area»] в PHP. Результат - более четкий код.
В самом регулярном выражении захваченный текст доступен через \ k с .NET и (? P = Area) в Python и PHP.
С Python и .NET (но не с PHP) вы можете использовать одно и то же имя более одного раза в одном выражении.
Эта функция дает вам возможность легко ссылаться на то, что вы поймали из кода (см. Пример), или из самого регулярного выражения, используя дружественное имя вместо индекса. Простого пример:
Regex regex = new Regex(@"(?<foo>[fF][oO][oO]) \k<foo>");
foreach (Match match in regex.Matches("bar fOO foO foO f0O"))
{
Console.WriteLine(match);
}
Печать
foO foO
Это регулярное выражение позволяет поймать «Foo» с любой комбинацией капиталоемких строчными букв, но только, если он предшествует другие «обув «с точно таким же набором маленьких маленьких букв. Вы также можете обратиться к своей группе, используя синтаксис match.Groups["name"]
, поэтому в этом примере match.Groups["foo"]
вернет «foO».
Редактировать: Новый пример, который будет использовать синтаксис \ k < name>.
- 1. Шаблоны регулярных выражений C#
- 2. Взаимно эксклюзивные шаблоны регулярных выражений
- 3. Шаблоны регулярных выражений Glob - PHP
- 4. Шаблоны регулярных выражений в Java
- 5. Предварительно построенные шаблоны регулярных выражений или библиотеки регулярных выражений?
- 6. шаблоны регулярных выражений - noob в PHP
- 7. Захват повторяющиеся шаблоны регулярных выражений в PHP
- 8. Найденные шаблоны регулярных выражений распечатывают ячейку памяти
- 9. Общие шаблоны регулярных выражений на платформах
- 10. Соответствующие шаблоны регулярных выражений в порядке
- 11. шаблоны и списки регулярных выражений в python
- 12. Соответствующие шаблоны регулярных выражений с символами
- 13. Пожалуйста, измените свои шаблоны регулярных выражений
- 14. Являются ли эти шаблоны регулярных выражений разными?
- 15. Изменение имен столбцов с использованием регулярных выражений
- 16. Сортировка имен файлов с использованием регулярных выражений
- 17. Что касается регулярных выражений PHP имен файлов
- 18. Как хранить шаблоны регулярных выражений, как объекты или строки регулярных выражений?
- 19. регулярных выражений (регулярных выражений) в vb.net
- 20. Получение регулярных выражений (регулярных выражений) в Stata
- 21. Шаблоны регулярных выражений и узлов DOM; Изменение атрибутов?
- 22. Модификация Java регулярных выражений
- 23. Пример регулярных выражений
- 24. Регулярных выражений
- 25. регулярных выражений
- 26. Ошибка регулярных выражений
- 27. с использованием регулярных выражений
- 28. Регулярных выражений в VB.NET
- 29. Скрыть элементы регулярных выражений
- 30. Шаблон регулярных выражений, не работающий в AEM Шаблоны-allowedPaths property
Обычно это используется для обратных ссылок. См.: http://www.regular-expressions.info/named.html – Mischa