您好任何人都可以帮我解决这个问题 我必须匹配以下行:
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
答案 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*
而不是.*
来捕获字段的尾部,因此您知道您一次只捕获一个字段。