永发信息网

如何用c语言来识别电子邮箱是否正确

答案:1  悬赏:60  手机版
解决时间 2021-02-19 12:45
如何用c语言来识别电子邮箱是否正确
最佳答案
最简单的方式是使用正则表达式。检测邮箱格式的正则表达式:^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$。
1、标准的C和C++都不支持正则表达式,但有一些函数库可以辅助C/C++程序员完成这一功能,其中最著名的当数Philip Hazel的Perl-Compatible Regular Expression库,许多Linux发行版本都带有这个函数库。
2、C/C++ 中使用正则表达式一般分为三步:
1)编译正则表达式 regcomp()
int regcomp (regex_t *compiled, const char *pattern, int cflags)
这个函数把指定的正则表达式pattern编译成一种特定的数据格式compiled,这样可以使匹配更有效。函数regexec 会使用这个数据在目标文本串中进行模式匹配。执行成功返回0。
2)匹配正则表达式 regexec()
int regexec (regex_t *compiled, char *string, size_t nmatch, regmatch_t matchptr [], int eflags)
当编译好正则表达式后,就可以用regexec 匹配我们的目标文本串了,如果在编译正则表达式的时候没有指定cflags的参数为REG_NEWLINE,则默认情况下是忽略换行符的,也就是把整个文本串当作一个字符串处理。执行成功返回0。
3)释放正则表达式 regfree()
void regfree (regex_t *compiled)
当使用完编译好的正则表达式后,或者要重新编译其他正则表达式的时候,可以用这个函数清空compiled指向的regex_t结构体的内容。请注意,如果是重新编译的话,一定要先清空regex_t结构体。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
福客来快餐地址有知道的么?有点事想过去
“一手起批”是什么意思?
185的电缆零是多少的啊
玫瑰花的花瓣改成拟人句
龙华国际大酒店-棋牌室地址有知道的么?有点
刺猬的猬应该怎么组词 急
远行星号 菲雅莉帝国神秘基地在哪
三门峡兴顺汽车销售服务有限公司这个地址在什
过敏性鼻炎有什么症状
一个人三角形的底边长4.3厘米,面积是17.2厘米
求 !一个月的小狗打了七联,会不会丧命啊?
汔车发碰撞当时不知道有问题后来车子出现问题
水利工程特大事故应如何上报
结了婚 老丈人家该不该有一间属于我和老婆的
张良 古文中的什么古文有这个人的好象是写他
推荐资讯
【关于见闻的作文】关于生活见闻的作文怎么写
下列各组词语中,没有错别字一组是:A. 鱼船
将旅游资源分为自然景观和人文景观两种类型的
双湖锦苑三期五区地址在什么地方,想过去办事
蓝天婚纱摄影在什么地方啊,我要过去处理事情
华硕w519l设置u盘启动
居士建了个庙,想请位出家师来领众念佛,这法
黄土坑街道办怎么去啊,有知道地址的么
德世朗乐炫精铁不粘锅三件套dfs-tz106b 可以
男人喜欢处女,女人却不喜欢处男,是不是这样
陕西广电网络路由器怎么用不成了?
如果3x+2=5,那么2x+11的值为()
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?