perl正则表达式可以使用parens但跳过反向引用吗?

时间:2015-01-14 16:18:45

标签: arrays regex perl

我有这个正则表达式:

@disks = $sysconfig =~ /(\d+)\.\d+:(\s+[\w.\/]+){5}\s+\((\w+)\)/ig

如果只有一条线匹配,我会得到像

这样的东西
1835 x @array
1836  35
1837  ' 520B/sect'
1838  'KXG813JF'

匹配:

  1. 字符串中的第一个数字

  2. “空格然后字母数字 - 句号和斜线”的第五个副本和

  3. 末尾的字母数字字符串

  4. 我不想在上面反向引用#2并且用它弄乱我的数组,但我也不想写出那个重复的模式,当我得到的是一个更简洁的正则表达式(看看)。

    有没有办法说“不要反向引用这篇文章”,或者当我将数组解析成我的程序更有用的东西时,我应该只处理它?<​​/ p>

1 个答案:

答案 0 :(得分:10)

是的,有。使用非捕获组构造:(?: ... )

除非您需要反向引用或捕获,否则您甚至应该默认使用