2012-05-15 15 views

Respuesta

21

Lo único que debe escaparse entre paréntesis es un corchete de cierre, y un menos si no es inicial o final, y un sombrero si es inicial, AFAIK. Y la barra invertida en sí, obviamente.

La razón es que estos son los únicos caracteres con un significado especial dentro de los corchetes. Un corchete de cierre termina los corchetes, un coro medio menos indica un rango, y un sombrero inicial niega la clase corchete. Todo lo demás debe ser interpretado literalmente. La barra diagonal inversa es el carácter de escape, por lo que necesita una doble barra invertida para que coincida con una barra invertida literal.

+1

+1 para esto y para el término "sombrero". ¿Eso significa que no debería escapar? – qwertymk

+0

@qwertymk Solo si no es el primer caracter, y no quiere que el sombrero signifique "no". – mc10

+0

@qwertymk: Mírelo de esta manera: '[^ a]' coincide con no-'a'. '[a ^]' coincide con 'a' o'^'. '[\^a]' coincide con lo mismo, 'a' o'^'. (¡Ah, y me olvidé de la barra invertida misma! ¡EDITAR!) '[\\^a]' coincide con '\', 'a' o'^'. – Amadan

Cuestiones relacionadas