我们最经常遇到的验证,就是电子邮件地址验证。网站上常见。各种网页脚本也都常用“正则表达式”(regular expression)对我们输入的电子邮件地址进行验证,判断是否合法。有的还能分解出用户名和域名。现在用C语言实现一下电子邮件地址验证程序,用的是POSIX正则表达式。由于用的是POSIX正则表达式,所以只能用gcc编译。

  另外,据测试,只有Linux原版的gcc才能编译通过。如果用Windows中的MinGW或Cygwin的gcc编译不通过,错误是找不到<regex.h>头文件。

  C语言源代码如下:

/** 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 1000int 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 );}elseputs( "您输入的电子邮件地址不合法\n\n" );}regfree( &match_regex );return EXIT_SUCCESS;
}

转载于:https://www.cnblogs.com/yejianfei/archive/2012/10/07/2714313.html

POSIX正则表达式 验证电子邮件地址相关推荐

  1. 如何使用正则表达式验证电子邮件地址

    电子邮件正则表达式模式 ^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$ ...

  2. python使用正则验证电子邮件_如何使用正则表达式验证电子邮件地址?

    在完全RFC 822标准的正则表达式是低效的和模糊的,因为它的长度.幸运的是,RFC 822被取代了两次,目前的电子邮件地址规范是RFC 5322.RFC 5322导致正则表达式,如果研究几分钟并且对 ...

  3. 如何在JavaScript中验证电子邮件地址

    如何在JavaScript中验证电子邮件地址? #1楼 与squirtle相比 ,这是一个复杂的解决方案,但是在正确验证电子邮件方面做得非常出色: function isEmail(email) { ...

  4. 如何快速验证电子邮件地址?

    本文翻译自:How to validate an e-mail address in swift? Does anyone know how to validate an e-mail address ...

  5. 我应该如何验证电子邮件地址?

    本文翻译自:How should I validate an e-mail address? What's a good technique for validating an e-mail addr ...

  6. php验证电子邮件,如何在PHP中验证电子邮件地址

    冉冉说 检查电子邮件地址是否格式良好的最简单和最安全的方法是使用filter_var()职能:if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { //  ...

  7. html5验证电子邮件地址,大家都知道如何吗?

    一个新值类型属性是电子邮件.使用这种类型的字段而不是一般的文本字段浏览器使用正则表达式来检查用户已经事实上输入一个电子邮件地址.这是否意味着用户不能输入一个虚假的电子邮件地址吗?没有.但你不必担心用户 ...

  8. python使用正则表达式验证邮箱地址语法有效性

    python使用正则表达式验证邮箱地址语法有效性 #python使用正则表达式验证邮箱地址语法有效性 import re # mail regular expression formula# rege ...

  9. 3种在JavaScript中验证电子邮件地址的方法

    来源 | http://www.fly63.com/ 如何使用JavaScript验证email的正确性?今天这个内容将做一个小小的总结,希望对你有所帮助. 方式一:简单验证 对于想要以以下形式进行真 ...

最新文章

  1. 想进大厂?Dubbo 普普通通 9 问你知道吗
  2. c primer plus(第五版)读书笔计 第四章(1)
  3. valgrind安装使用
  4. 如何布局文章标题才更吸引搜索引擎注意?
  5. 26.智能指针和动态内存
  6. C#对事务的代码封装
  7. Python中国际化(i18n)完整指南
  8. Spring注解开发-初始化/销毁方法注解
  9. [转]给新同学的礼仪建议
  10. 数据表--excel的读取案例
  11. zsh fg: no job control in this shell.
  12. 【SOEM主站】一、SOEM主站环境搭建及连接板子测试
  13. 自己制作一个小程序需要多少钱
  14. NBIOT BC26 opencpu物联网应用案例详细解析
  15. 问题 B: Bumped!
  16. 《组网技术》:路由器基本配置
  17. JAVA 接口签名sign生成 工具类
  18. boot.scr生成
  19. mysql中高阶玩法系列(八)
  20. 字节跳动暑期实习面试题准备

热门文章

  1. python和c哪个好学-C/C++和Python哪个更有前景?
  2. 儿童编程软件python-MRT7-Python少儿编程下载
  3. python面试-2018年最常见的Python面试题答案(上篇)
  4. 上海python培训比较好的机构-上海python培训机构哪个好?
  5. python看什么书-自学python看什么书
  6. python恶搞-如何用python和vbs恶搞基友?
  7. ipad编程软件python-iPad可用的软件编程软件有吗?
  8. python3.5怎么安装pip-python3.5版本安装pip3
  9. python单词大全-python常用的单词
  10. python应该怎么自学-新手该如何学python怎么学好python?