/*
* regex.c - 用正则表达式验证电子邮件地址
*
* POSIX正则表达式
*
*
* 编译命令:
* gcc regex.c -o regex -Wall
*
*
* Copyright 叶剑飞 2012
*
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <regex.h> /* regular expression 正则表达式 */
#define MAX_LENGTH 1000
int main (void)
{
size_t char_num;
char email_address[MAX_LENGTH];
char user_name[MAX_LENGTH];
char domain_name[MAX_LENGTH];
regmatch_t pmatch[4];
regex_t match_regex;
regcomp( &match_regex,
"([0-9A-Za-z\\-_\\.]+)@([0-9a-z]+\\.[a-z]{2,3}(\\.[a-z]{2})?)",
REG_EXTENDED );
while ( scanf( "%s", email_address ) != EOF )
{
if ( regexec( &match_regex, email_address, 4, pmatch, 0 ) == 0 )
{
char_num = pmatch[1].rm_eo - pmatch[1].rm_so;
strncpy( user_name, &(email_address[pmatch[1].rm_so]), char_num );
user_name[char_num] = '\0';
char_num = pmatch[2].rm_eo - pmatch[2].rm_so;
strncpy( domain_name, &(email_address[pmatch[2].rm_so]), char_num );
domain_name[char_num] = '\0';
puts( "您输入的电子邮件地址合法" );
printf ( "用户名:%s\n", user_name );
printf ( "域名:%s\n\n", domain_name );
}
else
puts( "您输入的电子邮件地址不合法\n\n" );
}
regfree( &match_regex );
return EXIT_SUCCESS;
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有