регулярное выражение на Perl - PullRequest
0 голосов
/ 10 ноября 2011

У меня есть следующий текстовый шаблон:

os2v некоторый текст openssl-56 тест не найден

и мне нужно извлечь слово, прежде чем тест не будет найден, т.е.в этом случае: openssl-56

в настоящее время я пытался использовать это регулярное выражение:

if (m/os2v (\s+) test is NOT founded/i){
    print $1
}

но почему код не вводит оператор if?

Ответы [ 4 ]

3 голосов
/ 10 ноября 2011

Очевидные проблемы состоят в том, что в вашем тексте нет слова «Обновление» и \s будет соответствовать пробелу .

1 голос
/ 10 ноября 2011

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

m/os2v .*\s([^\s]+) test is NOT founded/i
1 голос
/ 10 ноября 2011

Проблема в том, что вы не получите совпадение, так как ваш шаблон неверен.Следующий шаблон будет соответствовать и извлечь для вас openssl-56:

(\S+)(?=\stest Is Not founded)
0 голосов
/ 10 ноября 2011

Избавиться от пробела до и после (\ s +)

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