PureBasic
RegularExpressionNamedGroupPosition()
Синтаксис
Result = RegularExpressionNamedGroupPosition(#RegularExpression , GroupName$)
Описание
Возвращает позицию строки, которая соответствует указанной именованной группе, внутри текущей строки соответствующей Регулярному выражению, после вызова функции NextRegularExpressionMatch().
Параметры
#RegularExpression Номер идентифицирующий используемое Регулярное выражение. Для этого Регулярного выражения должны быть вызваны функции ExamineRegularExpression() и NextRegularExpressionMatch(). GroupName$ Имя используемой группы. Имя группы - чувствительно к регистру.
Возвращаемое значение
Возвращает позицию строки, которая соответствует указанной именованной группе, внутри текущей строки соответствующей РВ (Не в исходном тексте!). Здесь первый символ строки соответствующей РВ имеет позицию 1.
Комментарии
Группы в Регулярном выражении определяются путем включения в него подвыражения в круглых скобках "(" и ")". Доступ к группам можно получить либо по индексу (как это делается с помощью функции RegularExpressionGroupPosition() ), либо используя присвоенное им имя, согласно такому синтаксису: "(?<name>)", как показано ниже в примере.
Пример
; Это выражение соответствует строке настройки цвета (со значением red, green или blue)
; Цвета сгруппированы скобками (), и в случае совпадения извлекается значение цвета.
;
If CreateRegularExpression(0, "color=(?<col>red|green|blue)")
If ExamineRegularExpression(0, "stype=bold, color=blue, margin=50")
While NextRegularExpressionMatch(0)
Debug "The color is " + RegularExpressionNamedGroup(0, "col")
a = RegularExpressionNamedGroupPosition(0,"col")
Debug a ; строка "blue" соответствующая группе №1, находится в строке соотв. РВ: "color=blue" - начиная с 7-го символа.
Wend
EndIf
Else
Debug RegularExpressionError()
EndIf
End
См. также
ExamineRegularExpression(), NextRegularExpressionMatch(), RegularExpressionNamedGroup(), RegularExpressionNamedGroupLength(), RegularExpressionGroupPosition()
Поддерживаемые OS
Все