使用 strtok_r 进行字符串解析
我的字符串看起来像这样:
abcd "efgh [data\]" pqrl 12fgd]
我想解析直到 ']' 之前没有反斜杠 '\'
我可以用 strtok_r
来完成吗?如果不是我应该怎么做?
my string looks like this:
abcd "efgh [data\]" pqrl 12fgd]
I want to parse till ']' which is not proceeded by a backslash '\'
Can I do it with strtok_r
? If not than how should I do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用
strchr
来完成此操作。这是我尝试执行的方法(未经测试):You could do it with
strchr
. Here is how I would try to do it (untested):没有一种单一的方法可以使用
strtok_r
来完成此操作。由于分隔符是单个字符,因此如果strtok_r
返回的标记的最后一个字符是“\”,那么您始终可以通过填充分隔符来重建所需的字符串。这输出:
There is no one shot method to doing this using
strtok_r
. Since your delimiter is a single character you can always reconstruct the string you want by stuffing back the delimiter if the last character of a token returned bystrtok_r
is '\'.This outputs:
strtok 搜索要搜索的集合中的任何单个字符。您可以拆分 ],然后检查哪些前面有 \,但您无法使用它搜索正则表达式。
strtok searches for any single character in the set to be searched for. You could split on ] and then check which ones had a preceding \ but you can't search for a regex with it.