如何通过boost :: regex获取特定格式

时间:2018-12-04 06:59:27

标签: c++ regex boost boost-regex

我有一个字符串“ FA4.6.0.J7_13443_DATA”,并且想通过boost::regex进行解析。

以下一些用例需要注意:

  1. 如果前两位不是“ FA”,则匹配失败。
  2. 在“ FA”字符串之后,始终只能是数字值。
  3. 仅匹配字符串“ FA4.6.0”,此多余的字符串之后不匹配(表示将接受任何内容)。
  4. 在点分数值中,最多只能有两位数字的字母数字字符串(例如,FA14.66.0,FA4.6a.0,FA4.a6.0,FA4.4.0),并且至少有一个数字,始终仅是数字(例如FA4 .6.0)。如果字符串为“ FA4.a.0”,则抛出错误或不匹配

预期结果:

  

first_data = 4   second_data = 6   third_data = 0

如果有人指导我解决这个问题会很有帮助。

1 个答案:

答案 0 :(得分:0)

现在正确的正则表达式为:“ ^ [a-zA-Z] {2} [0-9] {1,2} [。] [0-9a-zA-Z] {1,2 } [。] [0-9a-zA-Z] {1,2} [。]。*“ ,效果很好。