尝试使用Regex捕获一行数据

时间:2012-04-17 20:23:02

标签: c# regex c#-4.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和价格字段)之间是否存在差距。

1 个答案:

答案 0 :(得分:2)

转换最后一部分:

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

到此:

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

*使空格可选。