1

在下表中,我只需要第一个数字

tqt
 T     P/S  NAME                   TOTAL            FOP                 SEGMENTS 
 9    .3  TMACDORMAN/SAM CORBIN    USD      1177.17 CHECK                  4-5   
 10   .1  TLOJ/DANUTA ISABELLA     USD      1341.17 CHECK                  4-5   
 10   .2  TMACDORMAN/JACK HENRY    USD      1341.17 CHECK                  4-5

根据上面的字符串我只需要

9
10
10

现在我正在使用以下正则表达式

(?:\d)([0-9]{0,}(?<!\.\d))

但它显示了“FOP”和“SEGMENT”列的数量。

4

3 回答 3

3

要捕获每行的第一个数字(之前可能有空格),您可以使用:

(?m)^ *(\d+)

(?m)在行的开头进行^匹配,而不仅仅是字符串的开头。

于 2013-05-16T09:20:35.617 回答
0
^(\s+(?<number>[0-9]+)[^\n]+(\n)?)+

然后读取NUMBER组的内容

或者如果您单独解析每一行

^\s+(?<number>[0-9]+)[^\n]+(\n)?
于 2013-05-16T09:13:12.610 回答
0

我试过(\d+)\s+.*了,这似乎对我有用,如果你想要的只是第一个数字。

我打开了忽略大小写和多行。

于 2013-05-16T09:00:59.530 回答