需要仅与数字列匹配的正则表达式。 数字列的每一行可能包含也可能不包含小数点加上减去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
答案 0 :(得分:1)
我有点不清楚你究竟要求什么,但让我至少指出你正确的方向......
你知道这个:
\d*(?:\.\d+)*
匹配十进制数。那么,你可以扩展它以匹配负数,如下所示:
-?\d*(?:\.\d+)*
然后你可以进一步扩展它以匹配最后有“e -...”的数字,如下所示:
-?\d*(?:\.\d+)*(?:e-\d+)?
然后最后,如果你想搜索整行,onle包含这样的数字,用空格分隔,你可以使用:
^(?:-?\d*(?:\.\d+)*(?:e-\d+)?\s*)*$