Perl正则表达式:在hypen之后和反斜杠之前提取值

时间:2015-04-29 06:15:17

标签: regex perl

我输入的数据格式如下:

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

2 个答案:

答案 0 :(得分:1)

您可以使用以下正则表达式:

(?:\/?[A-Z]+-([^\/\n]+))

请参阅demo on regex101

如果你有同质的输入数据,这将有效。

Sample Perl code

$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);