我正在尝试实现一个正则表达式,我可以在管道之间获取它应该匹配哪个匹配项的值,重要的是它与perl一起使用。
所以,如果我有以下字符串:GASD|11111|AAASAS|12WSD1|3SDSD&USJ|
我可以获得GASD
或11111
或AAASAS
等等,具体取决于我想要的第n个匹配项
我能够访问:(?:([^|]*)\|){4}
尽管使用其他语言,但它不能与perl一起使用,它会抓住从第一个到第四个匹配GASD|11111|AAASAS|12WSD1
的所有内容。
欣赏新想法。
答案 0 :(得分:2)
不是匹配第n个字符串片段(|
个字符之间),
你可以拆分字符串。
假设您的文字位于$x
。
my $x = 'GASD|11111|AAASAS|12WSD1|3SDSD&USJ|';
然后你可以在|
上分割这个字符串:
my @tbl = split /\|/,$x;
然后引用此数组的任何元素。