perl上的正则表达式

时间:2011-11-10 13:00:26

标签: regex perl

我有以下文字模式:

  

os2v一些文本openssl-56测试未成立

并且需要在未建立测试之前提取单词,即在这种情况下:openssl-56

目前我已尝试使用此正则表达式:

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

但是为什么代码没有输入if语句?

4 个答案:

答案 0 :(得分:3)

显而易见的问题是,您的文字不包含“更新”字样,而\s会与空格相匹配。

答案 1 :(得分:1)

问题是由于您的模式不正确,您没有得到匹配。以下模式将匹配并为您提取openssl-56

(\S+)(?=\stest Is Not founded)

答案 2 :(得分:1)

试试这个:

m/os2v .*\s([^\s]+) test is NOT founded/i

答案 3 :(得分:0)

摆脱(\ s +)

之前和之后的空间