Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 试图用正则表达式捕获一行数据_C#_Regex_C# 4.0 - Fatal编程技术网

C# 试图用正则表达式捕获一行数据

C# 试图用正则表达式捕获一行数据,c#,regex,c#-4.0,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+)

我试图抓住这一点:

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]+)

请注意,
GAL
3.189
之间没有间隙。有人能帮助我的正则表达式捕捉上面的行吗?请注意,数据可以以上述任何形式出现,因此我的正则表达式应该能够捕获行,无论字段(
GAL
和价格字段之间是否存在间隙)。

只需转换最后一部分:

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

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

*
使空格成为可选的。

我实际上找到了答案。这里是(?\d+)(?\d{2}/\d{2}/\d{2})+(?\d{2}:\d{2})+#?(?*?)?{2,}(?\S+)(?G | N)+(?\w{3})\S*(?\S+)但应该是这样。谢谢(?\w{3})\s*(?[\s]+)
(?<UOM>\w{3}) *(?<PRICE>[\S]+)