一个单元格里面包含全部信息,杂 乱无章的表格,如果名字包含字母和网名呢?麻烦解答详细一点,最好举个例子,谢谢
不规则的表格怎么分出名字电话和地址?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
8条回答 默认 最新
- dahe0825 2023-03-05 17:10关注
参考GPT的内容和自己的思路,对于不规则的表格,要分出名字、电话和地址,需要先确定这三个字段的特征。一般情况下,名字通常是中文字符,电话通常是数字和符号组成,地址通常包含中文、数字、字母和符号。在代码实现时,可以利用正则表达式来匹配这三个字段的特征。
下面是一份用 C 语言实现的示例代码,可以实现对不规则表格中的名字、电话和地址进行提取:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <regex.h> #define MAX_LINE_LENGTH 1024 #define MAX_MATCHES 10 int main() { char line[MAX_LINE_LENGTH]; regex_t regex; regmatch_t matches[MAX_MATCHES]; int reti; const char *pattern_name = "[\u4e00-\u9fa5]+"; const char *pattern_phone = "[0-9()-]+"; const char *pattern_address = "[\u4e00-\u9fa5A-Za-z0-9()-]+"; reti = regcomp(®ex, pattern_name, REG_EXTENDED); if (reti) { fprintf(stderr, "Could not compile regex\n"); exit(EXIT_FAILURE); } while (fgets(line, MAX_LINE_LENGTH, stdin) != NULL) { reti = regexec(®ex, line, MAX_MATCHES, matches, 0); if (reti == 0) { printf("Name: %.*s\n", (int)(matches[0].rm_eo - matches[0].rm_so), &line[matches[0].rm_so]); } reti = regcomp(®ex, pattern_phone, REG_EXTENDED); if (reti) { fprintf(stderr, "Could not compile regex\n"); exit(EXIT_FAILURE); } reti = regexec(®ex, line, MAX_MATCHES, matches, 0); if (reti == 0) { printf("Phone: %.*s\n", (int)(matches[0].rm_eo - matches[0].rm_so), &line[matches[0].rm_so]); } reti = regcomp(®ex, pattern_address, REG_EXTENDED); if (reti) { fprintf(stderr, "Could not compile regex\n"); exit(EXIT_FAILURE); } reti = regexec(®ex, line, MAX_MATCHES, matches, 0); if (reti == 0) { printf("Address: %.*s\n", (int)(matches[0].rm_eo - matches[0].rm_so), &line[matches[0].rm_so]); } } regfree(®ex); return 0; }
上述代码通过 fgets 逐行读取输入的表格,然后依次使用三个正则表达式进行匹配,分别匹配名字、电话和地址字段。其中,正则表达式的内容分别存储在 pattern_name、pattern_phone 和 pattern_address 中。匹配成功后,代码将匹配到的字段和对应的内容输出。
回答不易,还请能采纳!!!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 从Freecad中宏下载的DesignSPHysics,出现如下问题是什么原因导致的(语言-python)
- ¥30 notepad++ 自定义代码补全提示
- ¥15 MATLAB有限差分法解一维边值问题
- ¥200 内网渗透测试 横向渗透 Windows漏洞 Windows权限维持
- ¥15 数据结构图的相关代码实现
- ¥15 python中aiohttp.client_exceptions.ContentTypeError
- ¥30 DeepLung肺结节检测生成最大froc值对应的epoch报错
- ¥15 信号发生器如何将频率调大,步尽值改成10
- ¥15 keil 5 编程智能家具,风扇台灯开关,人体感应等
- ¥100 找一名渗透方面的专家