正则表达式匹配nth出现

时间:2018-05-28 12:42:30

标签: regex perl

我正在尝试实现一个正则表达式,我可以在管道之间获取它应该匹配哪个匹配项的值,重要的是它与perl一起使用。

所以,如果我有以下字符串:GASD|11111|AAASAS|12WSD1|3SDSD&USJ|我可以获得GASD11111AAASAS等等,具体取决于我想要的第n个匹配项

我能够访问:(?:([^|]*)\|){4}尽管使用其他语言,但它不能与perl一起使用,它会抓住从第一个到第四个匹配GASD|11111|AAASAS|12WSD1的所有内容。

欣赏新想法。

1 个答案:

答案 0 :(得分:2)

不是匹配第n个字符串片段(|个字符之间), 你可以拆分字符串。

假设您的文字位于$x

my $x = 'GASD|11111|AAASAS|12WSD1|3SDSD&USJ|';

然后你可以在|上分割这个字符串:

my @tbl = split /\|/,$x;

然后引用此数组的任何元素。

相关问题