缩短正则表达式

时间:2014-02-26 08:19:59

标签: regex vba

我在vba中使用regex来过滤文本文件中的一些数据。 文本文件如下所示:

GB01;150.08 ;0.00 ;1000.48 ;800.40 ;1000.48 ;1000.48 ;201304
AB01;150.08 ;0.00 ;1000.48 ;800.40 ;1000.48 ;1000.48 ;201304
CB01;150.08 ;0.00 ;1000.48 ;800.40 ;1000.48 ;1000.48 ;201304

我想提交一切,所以我的正则表达式看起来像这样:

(\w+);(\d+.?\d+)\s;(\d+.?\d+)\s;(\d+.?\d+)\s;(\d+.?\d+)\s;(\d+.?\d+)\s;(\d+.?\d+)\s;(\d+)

我对正则表达式非常新,所以我对我能做的事情有限。 有没有办法让这个正则表达式更短更干净?

2 个答案:

答案 0 :(得分:2)

但你只想将这些行分开?

GB01

150.08

0.00

1000.48

800.40

1000.48

1000.48

201304

您可以尝试使用Split方法,也许会有用。

http://msdn.microsoft.com/es-es/library/6x627e5f(v=vs.90).aspx

答案 1 :(得分:0)

你可以在匹配(数字+空格+';')的小组上使用重复:

(\w+);(\d+\.?\d+ ;)+

请注意,第二组也匹配最后一个数字,没有';'