0

我有一个字符串,我只想使用正则表达式显示 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

提前致谢

4

2 回答 2

3

这将在每行末尾找到零位或多个数字后跟小数点后跟两位数字值的数字

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

在此处输入图像描述

在此处输入图像描述

于 2013-05-14T13:50:13.900 回答
1

捕获请求中的第二个问题。请注意,我确实将空白搜索更改为边界搜索,因为这更干净一些。

这里的正则表达式要求字符串后跟一个TTL

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

在此处输入图像描述

在此处输入图像描述

于 2013-05-14T14:08:14.743 回答