2011-10-28 27 views

Respuesta

11

En general, no significa nada e incluso puede dar como resultado un error (si el signo de interrogación no sigue un carácter válido). Pero hay ciertos caracteres donde tiene un efecto, es decir, si este personaje también se usa como modifier.

regular-expressions.info dice sobre este particular, la sintaxis:

sabores de expresiones regulares modernos permiten aplicar modificadores a sólo una parte de la expresión regular. Si inserta el modificador (?ism) en el medio de la expresión regular, el modificador solo se aplica a la parte de la expresión regular a la derecha del modificador. Puede desactivar los modos precediéndolos con un signo menos. Todos los modos después del signo menos se apagarán. P.ej. (?i-sm) activa la insensibilidad de mayúsculas/minúsculas y desactiva el modo de línea única y el modo multilíneas.

No todos los sabores regex admiten esto. JavaScript y Python aplican todos los modificadores de modo a la expresión regular completa. No son compatibles con la sintaxis (?-ismx), ya que desactivar una opción no tiene sentido cuando los modificadores de modo se aplican a todas las expresiones regulares. Todas las opciones están desactivadas por defecto.

Puede probar rápidamente cómo el sabor de la expresión regular que está utilizando maneja los modificadores de modo. La expresión regular (?i)te(?-i)st debe coincidir con test y TEst, pero no con teST o TEST.

?i significa que todo lo que sigue a estos caracteres debe coincidir con las mayúsculas y minúsculas.

También tenga en cuenta que, como dice el texto, no todos los sabores de expresiones regulares admiten esta sintaxis.

+0

¡Estupendo! Lo tengo. Por cierto, es un gran sitio web –

Cuestiones relacionadas