我有以下字符串格式。
({'BTAddress': <'00:22:58:07:76:9B'>, 'Name': <'Some-Name'>, 'Alias': <'some-Name'>, 'Class': <uint32 12316>, 'Adapter': <objectpath '/org/bluez/3196/hci0'>},)
我想在C中解析上面的字符串而不是做原始解析,任何使用模式解析的建议? 谢谢你的帮助。
答案 0 :(得分:1)
您可以使用strtok
:http://www.cplusplus.com/reference/clibrary/cstring/strtok/。
你必须做一些手工工作才能使它工作,但它运作正常。
注意:您传递的char
指针将被操纵!!
答案 1 :(得分:1)
任何符合POSIX标准的C编译器都应提供<regex.h>
,为您提供应该能够提供帮助的正则表达式。
答案 2 :(得分:0)
正则表达式库可能就是您所需要的。如果您使用的是具有regular expression库的GNU C库,则为pattern matching。对于Win32编译器,您可以使用GNU代码的Regex for Windows端口。
答案 3 :(得分:0)
我的建议如下:
A) try using strtok to split the text at ',' and then split the resulting subtexts only once at ':' ,that way you would get the key,value pairs you desire.
B) use a regEx api under C that would basically solve your issue.
另外我可能会建议在C下为你的解析文本寻找一个键值存储(C ++有一个,但我真的不知道C)