匹配问题

时间:2014-08-05 06:59:24

标签: regex perl

您好任何人都可以帮我解决这个问题 我必须匹配以下行:

B14-1190                 COMBINATION                             1695 BROADWAY                         3,500.00                    179.74               179.74

我使用了这个正则表达式

^(B\d{2}-\d{4})\s{5,}(COMBINATION)\s{10,}(\d{2,4}\s.*)\s{2,}(\d{2,4}.*)\s{2,}(\d{2,4}.*)\s{2,}(\d{2,4}.*)

我不知道我做错了什么。有什么想法吗?

我想离开:B14-1190                     COMBINATION                     1695 BROADWAY                     3,500.00                     179.74                     179.74

2 个答案:

答案 0 :(得分:0)

如果没有复杂的正则表达式,您可以轻松完成:

my $string = "B14-1190                 COMBINATION                             1695 BROADWAY                         3,500.00                    179.74               179.74";

my @items = split(/\s{2,}/, $string);

答案 1 :(得分:0)

,不是数字(与\ d匹配)

^(B\d{2}-\d{4})\s{5,}(COMBINATION)\s{10,}(\d{2,4}\s.*)\s{2,}([\d,.]{2,4}.*)\s{2,}([\d,.]{2,4}.*)\s{2,}([\d,.]{2,4}.*)

作品。

您应该考虑匹配\S*而不是.*来捕获字段的尾部,因此您知道您一次只捕获一个字段。

相关问题