【发布时间】:2017-11-14 23:42:24
【问题描述】:
我有一个版本文件需要解析以获取 C99 中的某些版本。例如,假设其中一个字符串如下所示:
FILE: EXAMPLE ABC123459876-001 REV 1.IMG
12345 数字可以是任意数字,但后跟 4 位数字和一个连字符 + 一个 rev 和一个扩展名。我只想返回这个字符串的中间,即文件名+主版本so:“EXAMPLE 9876-001 REV 1”。我让它在 regex101 在线测试仪中工作,如下所示:
"(?<=EXAMPLE ABC.....)(....-... REV .)(?=.IMG)"
...但是 C99 正则表达式不支持积极的前瞻/后瞻运算符,所以这对我不起作用。我应该使用 strstr() 还是 strtok() 代替?只是寻找一些关于在 C 中执行此操作的最佳方法的想法,谢谢。
【问题讨论】:
-
数字可能更短或更长,但总是希望将最后 4 + 所有内容拉到“.”。加上文件名本身就是“示例”。尝试以半干净的方式来做这件事。