C语言 正则表达式邮箱验证(pcre库)

本程序与2020.3.12在DEV-C++编译器运行成功,邮箱验证用下面两个函数即可。

PCRE接口介绍

(1). pcre_compile

pcre *pcre_compile(const char *pattern, int options,
const char **errptr, int *erroffset,
const unsigned char *tableptr);
功能:编译指定的正则表达式
参数:pattern, 输入参数,将要被编译的字符串形式的正则表达式
options, 输入参数,用来指定编译时的一些选项
errptr, 输出参数,用来输出错误信息
erroffset, 输出参数,pattern中出错位置的偏移量
tableptr, 输入参数,用来指定字符表,一般情况用NULL, 使用缺省的字符表
返回值:被编译好的正则表达式的pcre内部表示结构

(2). pcre_exec

int pcre_exec(const pcre *code, const pcre_extra *extra,
const char *subject, int length, int startoffset,
int options, int *ovector, int ovecsize);
功能:用来检查某个字符串是否与指定的正则表达式匹配
参数: code, 输入参数,用pcre_compile编译好的正则表达结构的指针
extra, 输入参数,用来向pcre_exec传一些额外的数据信息的结构的指针
subject, 输入参数,要被用来匹配的字符串
length, 输入参数, 要被用来匹配的字符串的指针
startoffset, 输入参数,用来指定subject从什么位置开始被匹配的偏移量
options, 输入参数, 用来指定匹配过程中的一些选项
ovector, 输出参数,用来返回匹配位置偏移量的数组
ovecsize, 输入参数, 用来返回匹配位置偏移量的数组的最大大小
返回值:匹配成功返回非负数,匹配错误返回负数

编译之前的准备:

C语言正则库使用方法
这里使用的是GnuWin32编译的版本,我把需要的文件放到压缩包里了。
1、libpcre.dll.a复制到Dev-Cpp\MinGW64\lib
2、pcre.h 复制到Dev-Cpp\MinGW64\include
3、编译后运行需要pcre3.dll,复制到编译后目标代码目录下
4、编译选项添加 -lpcre

文件的下载地址:https://download.csdn.net/download/qq_42391248/12243382

代码如下:

#include<stdio.h>
#include<pcre.h>
#include<string.h>
int main() 
{
	const char* errptr=NULL;
	int erroffset;
	pcre *pPcre=pcre_compile("^([a-z0-9A-Z]+[-|_|\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\.)+[a-zA-Z]{2,}$",
							0,&errptr,&erroffset,NULL);
	char email_address[50];
	while(scanf("%s",email_address))
	{
		if(pcre_exec(pPcre,NULL,email_address,strlen(email_address),0,0,NULL,0)<0)
			printf("邮箱格式错误\n");
		else
			printf("邮箱格式正确\n"); 
	}
	free(pPcre); 
	return 0; 
}

 

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wonder-King

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值