На информационном ресурсе применяются рекомендательные технологии (информационные технологии предоставления информации на основе сбора, систематизации и анализа сведений, относящихся к предпочтениям пользователей сети "Интернет", находящихся на территории Российской Федерации)

Руководство по началу работы. Фиксация regex группы. Несоответствие группам

Иногда желательно группировать выражение, не отмечая их как группа кадра. Вы можете сделать это, включая выражение в скобках ?: как первые два символа. Например, если бы мы хотели переформатировать имена некоторых людей, игнорируя вторые имена если таковые вообще имеются, мы могли бы:

names = [
    "Graham James Edward Miller",
    "Andrew Gregory Macintyre"
]
printClosure = {
 matcher = (it =~ /(.
*?)(?: .+)+ (.*)/);  // notice the non-matching group in the middle
 if (matcher.matches())
  println(matcher[0][2]+", "+matcher[0][1]);
}
names.each(printClosure);

Должен вывести:

Miller, Graham
Macintyre, Andrew

Таким образом, мы всегда знаем, что фамилия - вторая matcher группа.

 

Рекомендуем
Популярное
наверх