Requisito previo: ¿Cómo escribir expresiones regulares?
Una expresión regular es una secuencia de caracteres que se utiliza para buscar patrones. Se utiliza principalmente para la coincidencia de patrones con strings, o la coincidencia de strings, etc. Son una forma generalizada de hacer coincidir patrones con secuencias de caracteres. Se utiliza en todos los lenguajes de programación como C++, Java y Python.
Patrones en la biblioteca POSIX
Expresión | Descripción |
---|---|
[] | Se utiliza para buscar cualquiera de los caracteres o números especificados entre corchetes. |
[:número:] | Se utiliza para encontrar cualquier dígito. |
[:más bajo:] | Se utiliza para encontrar alfabetos en minúsculas. |
[:palabra:] | Se utiliza para encontrar letras, números y guiones bajos. |
Creación de Expresión Regular
Para compilar o crear la expresión regular se utiliza la función regcomp() . Toma tres argumentos:
Sintaxis:
regcomp(®ex, expression, flag)
dónde,
- regex es un puntero a una ubicación de memoria donde se compara y almacena la expresión.
- expresión es un tipo de string
- bandera para especificar el tipo de compilación
Valor devuelto: Esto devuelve el valor como se muestra a continuación:
- 0 : cuando se realiza una compilación exitosa.
- Error_code : cuando no se compila correctamente la expresión.
A continuación se muestra la ilustración de la función regcomp():
C
// C program for illustration of regcomp() #include <regex.h> #include <stdio.h> // Driver Code int main() { // Variable to create regex regex_t reegex; // Variable to store the return // value after creation of regex int value; // Function call to create regex value = regcomp( &reegex, "[:word:]", 0); // If compilation is successful if (value == 0) { printf("RegEx compiled successfully."); } // Else for Compilation error else { printf("Compilation error."); } return 0; }
RegEx compiled successfully.
Coincidencia de patrón mediante expresión regular
La función regexec() se utiliza para comparar una string con un patrón. Toma cinco argumentos:
- Un patrón precompilado
- Una string en la que se debe buscar el patrón.
- Información sobre la ubicación de los partidos.
- Indicadores para especificar un cambio en el comportamiento de coincidencia.
Sintaxis:
regexec(®ex, expression, 0, NULL, 0);
donde, regex = patrón precompilado,
expresión = patrón para coincidir en regex,
NULL = información sobre la ubicación de las coincidencias.
flag = para especificar el cambio en el comportamiento de coincidencia
Valor devuelto: Esto devuelve el valor como se muestra a continuación:
- 0 : Si hay una coincidencia.
- REG_NOMATCH : si no hay coincidencia.
A continuación se muestra la ilustración de la función regexec():
C
// C program to illustrate the regexec() function #include <regex.h> #include <stdio.h> // Function to print the result void print_result(int value) { // If pattern found if (value == 0) { printf("Pattern found.\n"); } // If pattern not found else if (value == REG_NOMATCH) { printf("Pattern not found.\n"); } // If error occurred during Pattern // matching else { printf("An error occurred.\n"); } } // Driver Code int main() { // Variable to store initial regex() regex_t reegex; // Variable for return type int value; int value2; // Creation of regEx value = regcomp( &reegex, "Welcome to GfG", 0); // Comparing pattern "GeeksforGeeks" with // string in reg value = regexec( &reegex, "GeeksforGeeks", 0, NULL, 0); // Creation of regEx value2 = regcomp( &reegex, "GeeksforGeeks", 0); // Comparing pattern "Geeks" // with string in reg value2 = regexec( &reegex, "GeeksforGeeks", 0, NULL, 0); // Print the results print_result(value); print_result(value2); return 0; }
Pattern not found. Pattern found.
Publicación traducida automáticamente
Artículo escrito por Mindblender_3094 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA