【发布时间】:2016-12-31 16:19:53
【问题描述】:
我想知道如何区分列数不等的行。 例如:
100.00000 150.00000
18.1170 998.00 575.31 -1318.75 575.31
预期的结果是返回第 1 行或第 2 行,但不能同时返回。
该表达式应该认识到第一行有两个浮点数,第二行由五个任意长度的浮点数组成,中间有任意数量的空格。
python(或其他)中的一个解决方案是拆分行并计算列表的元素,但我想知道是否可以编写一个表达式来识别不同列数的行。
我试过\d+\.\d+ 但当然这显然不会对不同列数的行产生影响。
我也尝试过这样的事情,(作为 whitespace-number-whitespace-number 掩码):
^\s+[0-9]+\.[0-9]+\s+[0-9]+\.[0-9]+\s+[0-9]+\.[0-9]+
这也不是我想要的。
或使用群组(\d+\.[0-9]+\s)+
【问题讨论】:
-
你为什么强迫你的想法使用正则表达式?我认为你不会比
len(split(line))做得更好 -
@PaulMcGuire - 我在问题中写道,我有这样的解决方案,并且我对正则表达式方式感兴趣,如果有的话。好奇有错吗?
-
@EdMorton 我对正则表达式感兴趣,如果有任何解决这个问题的方法。这些行来自一个随机文件,是否有前两行并不重要。我认为很清楚,我想知道正则表达式是否可以区分第 1 行和第 2 行与第 3 行和第 4 行。
-
我也想知道为什么投反对票?问题的哪些方面没有得到满足?
-
@EdMorton - 谢谢 Ed,我试图简化问题,希望它更清楚。一个“是”的答案很好,但它可能没有用:)