Si tomó la gramática grep expresión regular, no el egrep uno, o la gramática de expresiones regulares sed y utilizó ese deberías estar usando un subconjunto seguro en muchas plataformas y herramientas.
Lo único que puede morderte entonces es cuando cambias entre las implementaciones de expresiones regulares usando Automatizaciones de estado finito (FSA) y las que usan retroceso, p. Ej. las implementaciones del cuantificador variarán de grep a Perl.
Las implementaciones basadas en FSA encontrarán la coincidencia más larga comenzando en la primera posición posible. Los que retroceden encontrarán la primera coincidencia sesgada hacia la izquierda, comenzando en la primera posición posible. Es decir, probará cada rama en el orden del patrón hasta que se encuentre una coincidencia.
Considere la cadena "xyxyxyzz"
, y el patrón "(xy)*(xyz)?"
. Los motores basados en FSA coincidirán con la subcadena más larga posible, "xyxyxyz"
. Los motores basados en seguimiento posterior coincidirán con la primera subcadena sesgada a la izquierda, "xyxyxy"
.
"autómata de decisión no finito". Mi computadora solo tiene memoria finita; ¿cómo tiene un infinito $ THING? Creo que podría querer decir s/finite/deterministic/g. –