正则表达式查找地段的有关问题。求大神帮忙
正则表达式查找地段的问题。求大神帮忙。
在wireshark抓包后存成txt。想抓出来里边儿的seq=1111,或者len=1111,想要这些字段中的数字。
查找到这“=”到“,这整个部分很简单,但是如果我只要数字怎么办?求大神指点。
------解决方案--------------------
------解决方案--------------------
字符串:seq=1111,或者len=22222
正则表达式:seq=(\d*).*len=(\d*)
匹配结果
1.seq=1111,或者len=22222
(1).1111 (2).22222
推荐使用regtest软件。
在wireshark抓包后存成txt。想抓出来里边儿的seq=1111,或者len=1111,想要这些字段中的数字。
查找到这“=”到“,这整个部分很简单,但是如果我只要数字怎么办?求大神指点。
------解决方案--------------------
#include <stdio.h>
#include <string.h>
#define MAX_LINE_SIZE 100
int main(int argc, char **argv)
{
char line[MAX_LINE_SIZE];
FILE *in = fopen(argv[1], "r");
if (in == NULL)
printf("Can't open %s\n", argv[1]);
else
{
char *p;
int seq;
int len;
while (fgets(line, MAX_LINE_SIZE, in))
{
/*以下假设每行只有"seq="或"len="*/
if (p = strstr(line, "seq="))
{
sscanf(p+4, "%d", &seq);
printf("seq=%d\n", seq);
}
else if (p = strstr(line, "len="))
{
sscanf(p+4, "%d", &len);
printf("len=%d\n", len);
}
}
}
return 0;
}
------解决方案--------------------
字符串:seq=1111,或者len=22222
正则表达式:seq=(\d*).*len=(\d*)
匹配结果
1.seq=1111,或者len=22222
(1).1111 (2).22222
推荐使用regtest软件。