我应该使用正则表达式还是PEG来处理这些用例?

时间:2015-09-23 17:35:16

标签: regex parsing peg

我想解析的数据示例:

  • 制造商XY-2822,10 mill,17-25b
  • 其他制造商16b部分
  • 另一家制造商WER M9000,11工程,11-40
  • 18b Part
  • 制造商11-36,10-mill
  • 制造商1x或2x;最大尺寸1x(34b),2x(38 / 24b)

我正在尝试分别提取:

  • 17,25
  • 16
  • 11,40
  • 18
  • 11,36
  • 34,38,24

对于最后一个,只有38,24也是可以接受的。

所以,我可能会或者可能没有数据中的其他数字,我可能会或可能不会在我感兴趣的项目上附加“b”。我还需要提取多个数字,这些数字由短划线( - )或正斜杠(/).

我应该为此使用解析表达式语法吗?

编写正则表达式是否更简单,如果是这样,我应该写几个表达式还是我可以一下子做到这一点?

编辑在这里添加更多案例,因为在接受更多审查时,一个好的答案会分崩离析

1 个答案:

答案 0 :(得分:1)

我应该使用积极的前瞻。

\d+(?=[^,]*$)

DEMO

更新

使用以下正则表达式并从组索引1和2中获取所需的字符串。

(\d+)(?:[\/-](\d+)|b)

DEMO