Perl Regex для соответствия буквенно-цифровым - PullRequest
1 голос
/ 16 ноября 2011

Я пытаюсь получить версию ядра и gcc, прочитав файл / proc / version с помощью Perl.Но я не уверен, но регулярное выражение, чтобы соответствовать версиям.Я пробовал что-то вроде этого

/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 SMP16 апреля 08:10:02 UTC 2010

Ответы [ 3 ]

2 голосов
/ 16 ноября 2011

Попробуйте это:

$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 голос
/ 16 ноября 2011
m{Linux version\s(\S+).*gcc version\s(\S+)} and print "$1\n$2\n"
1 голос
/ 16 ноября 2011

Это регулярное выражение будет работать для вас

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

Первая захваченная группа будет иметь версию linux 2.6.32-21-generic, а вторая захваченная группа будет иметь версию gcc 4.4.3. Если вы не хотите захватывать generic, используйте \d вместо \w.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...