c 正则提取html,c – 正则表达式以获取HTML表格内容
时间: 2024-03-10 16:44:07 浏览: 60
利用正则提取网页中的一个表格
5星 · 资源好评率100%
可以使用正则表达式来提取HTML表格内容,以下是一个示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <regex.h>
int main() {
char *html = "<table><tr><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td></tr></table>";
char *pattern = "<td>([0-9]+)</td>";
regex_t regex;
regmatch_t matches[2];
if (regcomp(®ex, pattern, REG_EXTENDED) != 0) {
printf("Failed to compile regex pattern\n");
return 1;
}
char *cursor = html;
while (regexec(®ex, cursor, 2, matches, 0) == 0) {
char match_str[matches[1].rm_eo - matches[1].rm_so + 1];
strncpy(match_str, cursor + matches[1].rm_so, matches[1].rm_eo - matches[1].rm_so);
match_str[matches[1].rm_eo - matches[1].rm_so] = '\0';
printf("%s\n", match_str);
cursor += matches[1].rm_eo;
}
regfree(®ex);
return 0;
}
```
在上面的示例中,我们使用了正则表达式`<td>([0-9]+)</td>`,用来匹配HTML表格中的单元格内容。然后使用`regcomp`函数将正则表达式编译成一个正则表达式对象,使用`regexec`函数来匹配字符串,如果匹配成功则使用`matches`数组来获取匹配结果,并使用`strncpy`函数将匹配结果复制到一个新的字符串中,最后输出这个字符串即可。
阅读全文