我需要使用正则表达式从变量捕获数据。数据可在表格中找到:Ip=8.8.8.8&probe=ip/tcp{dst=53}
例如。C++正则表达式
要使用实现这个我真的:
char *data;
data = getenv("QUERY_STRING");
char ipt[40];
char probe[40];
sscanf(data,"ip=%[0-9a-zA-Z-.]&probe=%[0-9a-zA-Z-.{}/=]",ipt,probe);
第二个字段将始终包含A /但我不能让这个和其他特殊carachters({} =)
能有什么我做?
我已经尝试过:
sscanf(data,"ip=%[0-9a-zA-Z-.]&probe=%[(...)]",ipt,probe);
,也没有成功的为好。
哪个资源让你接种了'sscanf()'支持正则表达式? – 2015-03-31 21:07:45
正如Jerry Coffin所说,sscanf不支持完整的正则表达式,但它们确实支持scansets! – user2375607 2015-04-01 16:37:38
更新:对于IP领域,完全没有问题,它按照我发布的方式工作。 IP字段通常会收到IP地址或网页(例如www.google.com)。探测字段可能会有所不同,所以它不会总是以{}结束,例如TCP/IP或IP/tcp {dst = 53}等。现在我明白了问题所在。我正在接收来自Web浏览器的数据并且符号({}/=)被编码(例如%7B%7D%3D)现在我需要找到一种方法让我的软件将%7B%7D%3D识别为{ } =例如。任何想法?提前致谢。 – user2375607 2015-04-01 16:46:52