我输入的数据格式如下:
ABCD-ABCD
ABCD-ABCD/EFGH-1
ABCD-ABCD/EFGH-1/IJKL-9
ABCD-ABCD/EFGH-1/IJKL-9/MNOP-432
ABCD-ABCD/EFGH-1/IJKL-9/MNOP-432/QRST-C20-Blatt-4
我想从上面提取以下值。
ABCD
ABCD,1
ABCD,1,9
ABCD,1,9,432
ABCD,1,9,432,C20-Blatt-4
答案 0 :(得分:1)
您可以使用以下正则表达式:
(?:\/?[A-Z]+-([^\/\n]+))
请参阅demo on regex101。
如果你有同质的输入数据,这将有效。
$str = "ABCD-ABCD/EFGH-1/IJKL-9/MNOP-432/QRST-C20-Blatt-4";
@myarray = ($str =~ /(?:\/?[A-Z]+-([^\/\n]+))/g);
print join(",", @myarray) . "\n";
输出:
ABCD,1,9,432,C20-Blatt-4
答案 1 :(得分:0)
-([^\/]*)
使用此正则表达式。
print join(",", "ABCD-ABCD/EFGH-1/IJKL-9/MNOP-432/QRST-C20-Blatt-4" =~ /-([^\/]*)/g);