scanf中的正则表达式?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scanf中的正则表达式?相关的知识,希望对你有一定的参考价值。
是否有任何正则表达式/方法来解决问题:我想在C中解析一个总是这样的文件:
数字(单词)
fscanf(file, "%d (%s) %d", ...)
有效但不是当它是复合词时,我该怎么做?
[来自comment的更新]
还有很多其他的变量,但我只说3让它更容易,没有多余。是的[word]可以包含空格
答案
只需阅读整行,并使用strtok()
通过搜索(
和)
作为分隔符来分解三个部分的字符串。
在那之后,只是部分地做sscanf()
。
char line[256]; // Make sure this is large enough for all possible lines.
char* left;
char* word;
char* right;
// Read the line from file. Make sure you don't go over its size.
left = line;
word = strtok(line, "(");
right = strtok(NULL, ")");
因为strtok()
用(
取代)
和