Les declaracions permeten que una expressió regular tan sols coincideixi sota una sèrie de condicions controlades.
Una declaració no necessita la coincidència d'un caràcter, sinó que investiga els voltants cercant una possible coincidència abans de donar-la per vàlida. Per exemple, la declaració límit de paraula no intenta trobar un caràcter que no sigui d'una paraula en oposició a un que sí que estigui en la seva posició, en comptes d'això mira d'assegurar que no és un caràcter d'una paraula. Això vol dir que la declaració pot ser vàlida en el cas que no hi hagi cap caràcter, és a dir, al final de la cadena cercada.
Algunes declaracions actuals no tenen un patró amb què coincidir, però la part coincident de la cadena no serà part del resultat de la coincidència de l'expressió completa.
Les expressions regulars aquí documentades suporten les següents declaracions:
^(accent circumflex: el començament d'una cadena)Coincideix amb el començament de la cadena cercada.
L'expressió
^Perecoincidirà amb «Pere» en la cadena «Pere, hola!» però no en «Hola Pere!»$(final de la cadena)Coincideix amb el final de la cadena cercada.
L'expressió
tu\?$coincidirà amb el final de la cadena «No l'has fet tu?», però amb cap part de «Tu no l'has fet?»\b(límit de paraula)Coincideix si hi ha un caràcter de paraula a un costat i no un caràcter de paraula a l'altre.
Això és molt útil per a trobar el final de les paraules, o ambdós extrems per a delimitar tota la paraula. L'expressió
\bin\bcoincidirà amb el «in» separat en la cadena «He came in through the window», però no amb el «in» de «window».\B(no límit de paraula)Coincideix amb tot el que «\b» no coincideix.
Això vol dir que coincidirà, per exemple, dins de les paraules: L'expressió
\Bin\Bcoincidirà en «window» però no en «integer» o en «I'm in love».(?=PATRÓ)(anticipació positiva)Una declaració d'anticipació cerca la part de la cadena seguida d'una possible coincidència. L'anticipació positiva prevé la coincidència de la cadena si el text que segueix no correspon al PATRÓ de la declaració, i el text que coincideix amb aquest no serà inclòs en el resultat.
L'expressió
handy(?=\w)coincidirà amb «handy» en «handyman» però no en «That came in handy!»(?!PATRÓ)(anticipació negativa)L'anticipació negativa prevé una possible coincidència si la següent part de la cadena coincideix amb el PATRÓ.
L'expressió
const \w+\b(?!\s*&)coincidirà amb «const char» en la cadena «const char* foo», mentre que no coincidirà amb «const QString» en «const QString& bar», atès que el «&» coincideix amb el patró de la declaració d'anticipació negativa.(?<=PATRÓ)(cerca cap enrere positiva)La cerca cap enrere té el mateix efecte que l'anticipació, però funciona a l'inrevés. Una cerca cap enrere cerca a la part de la cadena anterior a una possible coincidència. La cerca cap enrere positiva només coincidirà amb una cadena si està precedida pel PATRÓ de la declaració, i el text que coincideix amb aquest no serà inclòs en el resultat.
L'expressió
(?<=cup)cakecoincidirà amb «cake» si està precedit per «cup» (sí a «cupcake» però no a «cheesecake» o «cake»).(?<!PATRÓ)(cerca cap enrere negativa)La cerca cap enrere negativa prevé una possible coincidència si la part anterior de la cadena coincideix amb el PATRÓ.
L'expressió
(?<![\w\.])[0-9]+coincidirà amb «123» a les cadenes «=123» i «-123» però no coincidirà amb les cadenes «.123» o «word123».(PATRÓ)(amb captura del grup)El subpatró dins dels parèntesis serà capturat i recordat, de manera que pugui usar-se en les referències enrere. Per exemple, l'expressió
("+)[^"]*\1coincidirà amb""""text""""i"text".Per a obtenir més informació vegeu Captura del text coincident (referències enrere).
(?:PATRÓ)(sense captura del grup)El subpatró entre parèntesis no es capturarà ni recordarà. És preferible utilitzar sempre grups sense captura si no s'utilitzaran les captures.