regex - probar - Caretas en expresiones regulares
expresiones regulares java (1)
Específicamente, ¿cuándo ^
significa "coincidencia de inicio" y cuándo significa "no lo siguiente" en expresiones regulares?
A partir del artículo de Wikipedia y otras referencias, he llegado a la conclusión de que significa el primero al principio y el segundo cuando se usa entre paréntesis, pero ¿cómo maneja el programa el caso en el que el caret se encuentra al comienzo y al soporte? ¿Qué hace, digamos, ^[bd]t$
match?
^
solo significa "no lo siguiente" cuando está dentro y al comienzo de []
, entonces [^...]
.
Cuando está dentro de []
pero no al principio, significa el carácter ^
real.
Cuando se escapa ( /^
), también significa el carácter ^
real.
En todos los demás casos, significa el inicio de la cadena / línea (cuál depende del idioma / configuración).
Así que en resumen:
-
[^abc]
-> no a, b o c -
[ab^cd]
-> a, b, ^ (carácter), c o d -
/^
-> un carácter^
- En cualquier otro lugar -> comienzo de cadena / línea.
Entonces ^[bd]t$
significa:
- Comienzo de linea
- b / c / d caracter
- t carácter
- Fin de la línea