正则表达式匹配数字列

时间:2013-07-25 14:07:07

标签: php regex numbers

需要仅与数字列匹配的正则表达式。 数字列的每一行可能包含也可能不包含小数点加上减去sing和字母“e”。 此外,每列之间的空白数可能多于一个。列数不固定。

我正在解析的文本的代表性示例。

  #B0 alphanumeric line 26_0000 abc
#B1  57 115 550.000000 270.000000 
#N 18
#Labels X Y  Something  Else Here
-16.3252 -11.205718    0 2.61836e-07 110
-16.1728 -10.90549    0 2.61836e-07 87 
-16.0228 -10.605516    0 2.61836e-07 50 
-15.8728 -10.305796    0 2.61836e-07 31
-15.7229 -10.005822    0 2.61836e-07 49 
-15.5727 -9.705594    0 2.51826e-07 4998
-15.4228 -9.40562     0 2.71836e-07 176

Some alphanumeric  -14.9729 is 24678   COM at -14.7531   
Sum = 147364  Ave.Mon./Time = 136117 

1 个答案:

答案 0 :(得分:1)

我有点不清楚你究竟要求什么,但让我至少指出你正确的方向......

你知道这个:

\d*(?:\.\d+)*

匹配十进制数。那么,你可以扩展它以匹配负数,如下所示:

-?\d*(?:\.\d+)*

然后你可以进一步扩展它以匹配最后有“e -...”的数字,如下所示:

-?\d*(?:\.\d+)*(?:e-\d+)?

然后最后,如果你想搜索整行,onle包含这样的数字,用空格分隔,你可以使用:

^(?:-?\d*(?:\.\d+)*(?:e-\d+)?\s*)*$