PHP 8.5.0 Beta 2 available for testing

Anclajes

Fuera de una clase de caracteres, en el modo de coincidencia predeterminado, el carácter de circunflejo (^) es una afirmación que es verdadera solo si el punto de coincidencia actual está al inicio de la cadena de sujeto. Dentro de una clase de caracteres, el circunflejo (^) tiene un significado completamente diferente (ver más abajo).

El circunflejo (^) no necesita ser el primer carácter del patrón si se involucran varias alternativas, pero debe ser la primera cosa en cada alternativa en la que aparezca si el patrón alguna vez va a coincidir con esa rama. Si todas las alternativas posibles comienzan con un circunflejo (^), es decir, si el patrón está restringido a coincidir solo al inicio del sujeto, se dice que está "anclado". (También hay otras construcciones que pueden causar que un patrón esté anclado.)

Un carácter de dólar ($) es una afirmación que es true solo si el punto de coincidencia actual está al final de la cadena de sujeto, o inmediatamente antes de un carácter de nueva línea que es el último carácter en la cadena (por defecto). El dólar ($) no necesita ser el último carácter del patrón si se involucran varias alternativas, pero debe ser el último elemento en cualquier rama en la que aparezca. El dólar no tiene ningún significado especial en una clase de caracteres.

El significado del dólar puede cambiarse para que solo coincida al final muy exacto de la cadena, estableciendo la opción PCRE_DOLLAR_ENDONLY en el momento de compilación o coincidencia. Esto no afecta la afirmación \Z.

Los significados de los caracteres de circunflejo y dólar cambian si la opción PCRE_MULTILINE está establecida. Cuando esto es así, coinciden inmediatamente después y inmediatamente antes de un carácter "\n" interno, respectivamente, además de coincidir al inicio y final de la cadena de sujeto. Por ejemplo, el patrón /^abc$/ coincide con la cadena de sujeto "def\nabc" en modo multiline, pero no de otra manera. Por lo tanto, los patrones que están anclados en modo de una sola línea porque todas las ramas comienzan con "^" no están anclados en modo multiline. La opción PCRE_DOLLAR_ENDONLY se ignora si PCRE_MULTILINE está establecido.

Tenga en cuenta que las secuencias \A, \Z y \z pueden usarse para coincidir con el inicio y final del sujeto en ambos modos, y si todas las ramas de un patrón comienzan con \A, siempre está anclado, ya sea que PCRE_MULTILINE esté establecido o no.

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top