Vorheriges Thema: Genügsame Wiederholungen

Nächstes Thema: Nichtmarkierende Klammer

Klammer

Klammern erfüllen zwei Zwecke: um Elemente zu einem Unterausdruck zu gruppieren und um zu kennzeichnen, wodurch die Übereinstimmung zustande kam. Der Ausdruck "(ab)*" beispielsweise würde mit dem gesamten String "ababab" übereinstimmen. Die Anpassungsalgorithmen regex_match und regex_search nehmen jeweils eine Instanz von match_results, die angibt, was die Entsprechung verursacht hat; nach Beenden dieser Funktionen enthält match_results Informationen sowohl darüber, was dem gesamten Ausdruck entsprach als auch darüber, was jedem Unterausdruck entsprach. Im obigen Beispiel würde match_results[1] ein Iteratorenpaar enthalten, welches das "ab" des Entsprechungsstrings festlegt. Es ist zulässig, dass Unterausdrücke Nullstrings entsprechen. Ist ein Unterausdruck nicht Teil einer Entsprechung – beispielsweise wenn er zu einer nicht verwendeten Alternative gehört, verweisen beide Iteratoren, die für diesen Unterausdruck ausgegeben werden, auf das Ende des Eingangsstrings, und der Entsprechungsparameter für diesen Unterausdruck ist falsch. Unterausdrücke sind beginnend mit 1 von links nach rechts indexiert; der Unterausdruck 0 ist der gesamte Ausdruck.