Behauptungen erweitern den regulären Ausdruck so, dass er nur unter bestimmten Bedingungen zutrifft.
Eine Behauptung braucht kein Zeichen um zuzutreffen, diese ermittelt vielmehr die Umgebung einer eventuellen Übereinstimmung bevor dieser bestätigt wird. Die Behauptung Wortgrenze z. B. versucht nicht, ein nichtdruckbares Zeichen neben einem druckbaren Zeichen zu finden, sondern stellt fest, dass dort KEIN druckbares Zeichen ist. Das heißt, dass dieses z. B. auch am Ende einer Zeichenfolge zutrifft.
Einige Behauptungen haben ein Muster das gefunden werden muss, aber der zutreffende Teil des Suchtextes dieses Musters wird nicht Teil des Ergebnisses des gesamten regulären Ausdrucks.
Reguläre Ausdrücke wie hier beschrieben unterstützen die folgenden Behauptungen:
^(Hochzeichen: Anfang der Zeichenfolge)Trifft auf den Anfang des zu suchenden Textes zu.
Der Ausdruck
^Petertrifft auf „Peter“ im Text „Peter, hey!“ zu, aber nicht auf „Hey, Peter!“.$(Ende der Zeichenfolge)Trifft auf das Ende des Suchtextes zu.
Der Ausdruck
you\?$trifft auf das letzte „you“ in „You didn‚t do that, did you?“ zu, aber nirgendwo in „You didn‘t do that, right?“.\b(Wortgrenze)Trifft zu, wenn ein druckbares Zeichen auf der einen Seite aber keines auf der anderen Seite ist.
Dieser Ausdruck dient zum Finden von Wortenden, wenn nach beiden Enden gesucht wird, zum Finden des ganzen (einzelnstehenden) Wortes. Der Ausdruck
\bin\btrifft auf das einzelnstehende „in“ in „He came in through the window“ zu, aber nicht auf das „in“ in „window“.\B(keine Wortgrenze)Trifft immer dort zu, wo „\b“ nicht zutrifft.
Dieser Ausdruck dient zum Finden von Text innerhalb von Worten. Der Ausdruck
\Bin\Btrifft z. B. auf das „in“ im Wort „window“ im Text „He came in through the window“ zu, aber nicht auf „integer“ oder „I'm in love“.(?=PATTERN)(Positive Vorwärtsreferenz)Eine Vorwärtsreferenz prüft den Text, der dem eventuell zutreffenden Teil des Textes folgt. Die Vorwärtsreferenz verhindert, dass der Text zutrifft, wenn der nachfolgende Text nicht auf das MUSTER der Behauptung zutrifft. Wenn die Behauptung zutrifft, wird der Text, der auf diese zutrifft, allerdings nicht Bestandteil des Ergebnisses.
Der Ausdruck
handy(?=\w)trifft auf „handy“ in „handyman“ zu, aber nicht auf das in „That came in handy!“(?!PATTERN)(Negative Vorwärtsreferenz)Eine negative Vorwärtsreferenz verhindert, dass der Text zutrifft, wenn der nachfolgende Text auf das MUSTER zutrifft.
Der Ausdruck
const \w+\b(?!\s*&)trifft auf „const char“ im Text „const char* foo“, aber nicht „const QString“ in „const QString& bar“ weil das „&“ auf die negative Vorwärtsreferenz zutrifft.(?=PATTERN)(Positive Rückwärtsreferenz)Eine Rückwärtsreferenz hat die gleiche Wirkung wie eine Vorwärtsreferenz, funktioniert aber rückwärts. Eine Rückwärtsreferenz sucht den Teil der Zeichenfolge vor einer mögliche Übereinstimmung. Die positive Rückwärtsreferenz passt nur dann auf eine Zeichenfolge, wenn PATTERN der Behauptung vorangestellt ist, aber der damit übereinstimmende Text wird nicht in das Ergebnis aufgenommen.
Der Ausdruck
(?<=cup)cakepasst auf „cake“, wenn „cup“ vorangestellt ist wie z. B. in „cupcake“ aber nicht in „cheesecake“ oder in nur „cake“.(?!PATTERN)(Negative Rückwärtsreferenz)Eine negative Rückwärtsreferenz verhindert, dass der Text zutrifft, wenn der vorherige Text auf das MUSTER zutrifft.
Der Ausdruck
(?<![\w\.])[0-9]+passt auf „123“ in der Zeichenfolgen „=123“ und „-123“, aber nicht auf „123“ in „.123“ oder „word123“.(PATTERN)(Gruppierung)Das Untermuster innerhalb der Klammern wird gespeichert und gemerkt, so dass es in Rückwärtsreferenzen verwendet werden kann. Der Ausdruck
("+)[^"]*\1passt zum Beispiel auf""""text""""und"text".Weitere Informationen im Abschnitt Speichern von gefundenem Text (Rückwärtsreferenzen).
(?:PATTERN)(Nicht speichernde Gruppe)Das Untermuster in den Klammern wird nicht gespeichert und gemerkt. Sie sollten immer nicht speichernde Gruppen zu verwenden, wenn die Speicherungen nicht verwendet werden.