Pregunta ¿Cuáles son las diferencias entre el patrón de estilo glob y la expresión regular?


Me he encontrado con situaciones en las que solo se admiten patrones de estilo glob y el soporte completo de expresiones regulares no está allí, por ejemplo, teclas de redis. Me gustaría saber la distinción entre los dos. También me hace preguntarme, ¿está implementando el algoritmo de comparación de expresiones regex más difícil en comparación con el patrón de estilo glob que algunos softwares no admiten expresiones regex en absoluto?


32
2018-05-16 18:23


origen


Respuestas:


Los comodines glob tradicionales admiten un conjunto muy limitado de metacaracteres: * es algo", ? es un personaje individual arbitrario; Bourne Shell también es compatible [a-z123] para un solo personaje de un conjunto de alternativas, y [!x-z789] cualquiera excepto los listados.

Regex obviamente es mucho más rico, admite repeticiones y (en ERE) alternancia y números específicos de repeticiones. La expresión regular al estilo Perl amplía aún más el formalismo hasta el punto en que se han escrito varios libros, y habrá más.

La expresión regular básica no es mucho más difícil de programar que los comodines glob, y en estos días, un programador competente se vincularía a una biblioteca existente en cualquier caso, de todos modos.

Muchos sistemas más simples no quieren cargar a sus usuarios con la complejidad de aprender expresiones regulares, incluso los comodines básicos son un desafío para explicar a su tipo de vendedor medio, que no es un usuario de computadora a tiempo completo.


20
2018-05-16 18:35



Las expresiones regulares se usan en comandos / funciones para la coincidencia de patrones en el texto. Por ejemplo, en el parámetro pattern de grep o en los lenguajes de programación.

Globear es utilizado por las conchas para emparejar nombres de archivos y directorios usando comodines. Las capacidades de globbing dependen del shell. Bash, por ejemplo, admite comodines como:

Se puede encontrar más información aquí


0
2017-10-07 03:50