2012-04-17 66 views
0

我試圖捕捉到了這個:試圖捕捉線路數據與正則表達式

581116  03/20/12 08:42 87NL 10%ETH A  8,500 G GAL 3.189  27,106.50 

,我的正則表達式是:

^(?<BOLNUM>\d+) +(?<LOADDATE>\d{2}/\d{2}/\d{2}) +(?<LOADTIME>\d{2}:\d{2}) +#?(?<PRODUCTDESC>.*?)#? {2,}(?<QUANTITY>\S+) +(?<BASIS>G|N) +(?<UOM>\w{3}) +(?<PRICE>[\S]+) 

但某些文件對此有來源:

581116  03/20/12 08:42 87NL 10%ETH A  8,500 G GAL3.189  27,106.50 

請注意,GAL3.189之間沒有差距。有人可以幫助我的正則表達式來捕獲上述行嗎?請注意,數據可以以任何上述形式出現,因此我的正則表達式應該能夠捕獲這些行是否存在字段之間的差距(GAL和價格字段)。

+0

我確實找到了答案。這裏是 (? \ d +)+(? \ d {2}/\ d {2}/\ d {2})+(? \ d {2}:\ d {2})+ #?(?。*?)#? {2,}(? \ S +)+(? G | N)+(? \ w {3})\ s *(? \ S +) – 8GB 2012-04-17 20:40:34

回答

2

只是轉換最後一部分:

(?<UOM>\w{3}) +(?<PRICE>[\S]+) 

這樣:

(?<UOM>\w{3}) *(?<PRICE>[\S]+) 

*使空間可選。

+0

它應該是這個。謝謝。 (? \ w {3})\ s *(? [\ S] +) – 8GB 2012-04-18 19:48:03