如何仅提取数字

时间:2013-05-16 08:58:41

标签: asp.net regex

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

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”列的数量。

3 个答案:

答案 0 :(得分:3)

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

(?m)^ *(\d+)

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

^(\s+(?<number>[0-9]+)[^\n]+(\n)?)+

然后阅读 NUMBER

的内容

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

^\s+(?<number>[0-9]+)[^\n]+(\n)?