Carets en expresiones regulares

Resuelto Sylvester V Lowell asked hace 11 años • 2 respuestas

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?

Sylvester V Lowell avatar Jun 05 '13 22:06 Sylvester V Lowell
Aceptado

^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
Bernhard Barker avatar Jun 05 '2013 15:06 Bernhard Barker