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