【发布时间】:2016-02-10 20:27:42
【问题描述】:
我有一个类似于下面的文件。
工作 |状态 |等待原因 |等待本地 |等待远程 |运行 |通过 |失败 |跳过 |失败 --------------------------------- -------- ---------- -- ----------- ------------ -------- -------- -------- - -------- --------- 构建 1 |失败 | | | | | 8 | 5 | | build2 ` |通过 | | | | | 2 | | | build3 |通过 | | | | | 6 | | |我需要提取分隔符 '|' 之间的子字符串。我尝试使用下面的正则表达式
$row=~ s/ //g;
(@substrings)= $row =~ /|(.*?)\|/g;
结果是
0 :
1 : build1
2 :
3 : FAILED
4 :
5 :
6 :
7 :
8 :
..
我也使用了拆分函数split '|',$row;,但它返回的数据为
b
u
i
l
d
1
|
F
..
我正在尝试提取以下数据。
$substrings[0]=build1
$substrings[1]=FAILED
$substrings[2]=(null)
等等。
如何提取子串?
【问题讨论】:
-
你忘记转义第一个管道
|。
标签: regex string perl string-split csv