是否有一种简单的方法来解析指令的文件(因为我想不出更好的词)?
我需要扫描<!--#directive parameter=value -->
的文件,复制该值,找到该指令在文件中的位置和长度,以便可以用任何内容替换。
我来自微控制器,并且没有很多额外/完整库的经验。
有没有更好的方法来实现这一点,而不是逐行手动扫描? (我猜ftell用于位置,fgets,然后使用sscanf进行解析,如果是匹配则fseek回到最后位置。)
答案 0 :(得分:0)
这是一个可以帮助的正则表达式:
<!--\s*#.+=(\S+)\s?-->
每场比赛中索引为1的组是您的值。 您可以在此处测试它们:https://regex101.com/
还要考虑使用高级语言。这是C#中的一个片段,它打印文本文件中的所有值:
var inputText = File.ReadAllText("D:\\myTextFile.txt");
var regex = new Regex("<!--\\s*#.+=(\\S+)\\s?-->");
var matches = regex.Matches(inputText);
foreach (var g in matches.Cast<Match>().Select(match => match.Groups[1]))
Console.WriteLine(g.ToString());