Perl Regex匹配字母数字

时间:2011-11-16 14:37:32

标签: regex perl

我正在尝试内核&使用Perl读取/ proc / version文件的gcc版本。但我不确定,但匹配版本的正则表达式。我试过这样的事情

/Linux version (\d+)*gcc version(\d+)*/

但它不起作用。提前致谢。我是Perl的新手。版本的内容是

  

Linux版本2.6.32-21-generic(buildd @ rothera)(gcc版本4.4.3   (Ubuntu 4.4.3-4ubuntu5))#32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2010

3 个答案:

答案 0 :(得分:2)

试试这个:

$version =~ /Linux version ([\d.-]+)-\D.*gcc version ([\d.]+) /;
print "Linux version: $1\ngcc version: $2\n";

输出:

Linux version: 2.6.32-21
gcc version: 4.4.3

答案 1 :(得分:1)

这个正则表达式适合你

/Linux version ([\w.-]*).*?gcc version ([\w.]*)/

首先捕获的组将具有linux版本2.6.32-21-generic,第二个捕获的组将具有gcc版本4.4.3。如果您不想捕获generic,请使用\d代替\w

答案 2 :(得分:1)

m{Linux version\s(\S+).*gcc version\s(\S+)} and print "$1\n$2\n"