El símbolo de acento circunflejo dentro de conjuntos en expresiones regulares de PHP
Como sabes, el acento circunflejo dentro de [] crea
una negación cuando se escribe al principio de los corchetes.
Por lo tanto, es un metacarácter dentro
de estos corchetes. Para obtener el acento circunflejo como un carácter,
necesitas escaparlo o quitarlo del
primer lugar.
Ejemplo
En el siguiente ejemplo, el patrón de búsqueda es:
el primer carácter es todo excepto 'd',
luego dos letras 'x'.
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[^d]xx#', '!', $str);
?>
Como resultado, se guardará lo siguiente en la variable:
'! ! ! dxx'
Ejemplo
Y ahora el patrón de búsqueda es: el primer carácter
es 'd' o '^', luego dos
letras 'x':
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[d^]xx#', '!', $str);
?>
Como resultado, se guardará lo siguiente en la variable:
'axx bxx ! !'
Ejemplo
Puedes no quitar el acento circunflejo del primer lugar, y simplemente escaparlo usando la barra invertida, y entonces representará a sí mismo:
<?php
$str = 'axx bxx ^xx dxx';
$res = preg_replace('#[\^d]xx#', '!', $str);
?>
Como resultado, se guardará lo siguiente en la variable:
'axx bxx ! !'
Problemas prácticos
Dada la cadena:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Escriba una expresión regular que encuentre las cadenas según el patrón: acento circunflejo o arroba, y luego dos letras latinas.
Dada la cadena:
<?php
$str = '^xx axx ^zz bkk @ss';
?>
Escriba una expresión regular que encuentre las cadenas según el patrón: NI acento circunflejo ni arroba, y luego dos letras latinas.
Dada la cadena:
<?php
$str = '^xx axx ^zz bkk';
?>
Escriba una expresión regular que encuentre las cadenas según el patrón: NO acento circunflejo, y luego dos letras latinas.