Carets en expresiones regulares
Específicamente, ¿cuándo ^
significa "inicio de coincidencia" y cuándo significa "no lo siguiente" en expresiones regulares?
Del artículo de Wikipedia y otras referencias, he llegado a la conclusión de que significa lo primero al principio y lo segundo cuando se usa con corchetes, pero ¿cómo maneja el programa el caso en el que el signo de intercalación está al principio y entre corchetes? ¿Qué significa, digamos, ^[b-d]t$
coincidir?
^
solo significa "no lo siguiente" cuando está dentro y al comienzo de []
, entonces [^...]
.
Cuando está dentro []
pero no al principio, significa el ^
personaje real.
Cuando se escapa ( \^
), también significa el ^
carácter real.
En todos los demás casos, significa el inicio de la cadena o línea (cuál depende del idioma o de la configuración).
En resumen:
[^abc]
-> no a, b o c[ab^cd]
-> a, b, ^ (carácter), c o d\^
-> un^
personaje- En cualquier otro lugar -> inicio de cadena o línea.
Entonces ^[b-d]t$
significa:
- inicio de linea
- personaje b/c/d
- t carácter
- Fin de la línea