如何使用值之间仅从字符串中获取数字?

时间:2013-05-14 13:38:46

标签: asp.net regex

我有一个字符串,我想用正则表达式只显示1568.41我该怎么做呢 这是我的字符串

'* PQS«
        价格报价单 - 按姓名编号

              RETAINED FARE                                 
 NAME    PQ TYPE TKT DES              CREATED       TKT TTL      
 1.1     1                            14MAY USD   1568.41       
 2.1     1                            14MAY USD   1568.41       
 3.1     2  CNN CH25                  14MAY USD   1363.41 `
  • 我使用了1.1 \ s {2,5} \ d \ s(。+)正则表达式,但它获取完整的行。
  • 我用过(?< = USD)\ s {2,5} \ d {1,4}。\ d {2}(?= \ s(。+))但是没有用

还有另一个字符串,我想要获取数字

WPNCB«                                                         
19AUG DEPARTURE DATE-----LAST DAY TO PURCHASE 21MAY/2359       
         BASE FARE      EQUIV AMT      TAXES             TOTAL   
  1-       DKK790       USD139.00     179.40XT       USD318.40ADT
     XT    109.80YQ      19.20YR      29.00ZO         5.40UA      
            2.00UD       14.00YK                                
             790         139.00     179.40            318.40TTL

在下面我只需要第一个号码

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

在这个字符串中我想在TTL之前获取318.40,但是当我使用正则表达式时它还包含TTL,当我在正则表达式之间使用时无法在\d{1,4}\.\d{2}TTL中使用我的正则表达式

提前致谢

2 个答案:

答案 0 :(得分:3)

这将找到零个或多个数字后跟一个小数点后跟两行数字的数字

(?:\s)([0-9]{0,}[.][0-9]{2})

enter image description here

enter image description here

答案 1 :(得分:1)

捕获请求中的第二个问题。注意我确实将空白搜索更改为边界搜索,因为这有点清洁。

此正则表达式要求字符串后跟TTL

(?:\b)([0-9]{0,}[.][0-9]{2})(?=TTL)

enter image description here

enter image description here