Red de conocimiento del abogados - Ley de patentes - Cómo utilizar el lenguaje c para identificar si la dirección de correo electrónico es correcta

Cómo utilizar el lenguaje c para identificar si la dirección de correo electrónico es correcta

La forma más sencilla es utilizar expresiones regulares. Expresión regular para detectar el formato del buzón: ^[\w-] (\.[\w-] )*@[\w-] (\.[\w-] ) $.

1. Ni C ni C estándar admiten expresiones regulares, pero existen algunas bibliotecas de funciones que pueden ayudar a los programadores de C/C a completar esta función, la más famosa de las cuales es la biblioteca de expresiones regulares compatible con Perl de Philip Hazel. , muchas distribuciones de Linux vienen con esta biblioteca de funciones.

2. El uso de expresiones regulares en C/C generalmente se divide en tres pasos:

1) Compile la expresión regular regcomp()

int regcomp (regex_t). *compiled, const char *pattern, int cflags)

Esta función compila el patrón de expresión regular especificado en un formato de datos específico compilado, lo que puede hacer que la coincidencia sea más efectiva. La función regexec utilizará estos datos para realizar una coincidencia de patrones en la cadena de texto de destino. Devuelve 0 si se ejecuta correctamente.

2) Coincidir con la expresión regular regexec()

int regexec (regex_t *compilado, char *string, size_t nmatch, regmatch_t matchptr [], int eflags)

Después de compilar la expresión regular, podemos usar regexec para hacer coincidir nuestra cadena de texto de destino. Si el parámetro de cflags no se especifica como REG_NEWLINE al compilar la expresión regular, el carácter de nueva línea se ignora de forma predeterminada, es decir, trate toda la cadena de texto como. una cuerda. Devuelve 0 si se ejecuta correctamente.

3) Libere la expresión regular regfree()

void regfree (regex_t *compilado)

Después de usar la expresión regular compilada, o al recompilar otras expresiones regulares expresiones, puede utilizar esta función para borrar el contenido de la estructura regex_t a la que apunta el compilado. Tenga en cuenta que si está recompilando, primero debe borrar la estructura regex_t.