今天我再次需要你的帮助。 我正在学习Perl和我的第一个Job是扩展一个小脚本,它等待虚拟机输出这个输出:
Info: SOME_RANDOM_STRING: Focus switched to: [b] (1)
OR
Info: Focus switched to: [b] (1)
所以" SOME_RANDOM_STRING:"可以在那里,但现在我不需要匹配那些来决定输出是否存在。我试过了
Info: [a-zA-Z0-9*:]* Focus switched to: [b] (1)
这匹配"信息:SOME_RANDOM_STRING:焦点切换为:[b](1)"但不是"信息:焦点切换到:[b](1)"
答案 0 :(得分:2)
您必须捕获包含随机字符串的两个空格中的一个。
这根本不匹配任何空间:
[a-zA-Z0-9:]*
请改用:
( [a-zA-Z0-9:]+)?
答案 1 :(得分:1)
我做:
$str =~ /Info:.*?Focus switched to: \[b\] \(1\)/;
.*?
匹配任何不贪心的任何数字。