Perl Regex要么有字符串,要么没有字符串

Perl Regex要么有字符串,要么没有字符串,regex,perl,Regex,Perl,今天我再次需要你的帮助。 我正在学习Perl,我的第一项工作是扩展一个小脚本,它等待来自虚拟机的输出。该输出是: Info: SOME_RANDOM_STRING: Focus switched to: [b] (1) 或 所以“SOME_RANDOM_STRING:”可以存在,但不需要现在我需要匹配它们来确定输出是否存在。我试过了 Info: [a-zA-Z0-9*:]* Focus switched to: [b] (1) 这与“Info:SOME\u RANDOM\u STRING:F

今天我再次需要你的帮助。 我正在学习Perl,我的第一项工作是扩展一个小脚本,它等待来自虚拟机的输出。该输出是:

Info: SOME_RANDOM_STRING: Focus switched to: [b] (1)

所以“SOME_RANDOM_STRING:”可以存在,但不需要现在我需要匹配它们来确定输出是否存在。我试过了

Info: [a-zA-Z0-9*:]* Focus switched to: [b] (1)

这与“Info:SOME\u RANDOM\u STRING:Focus切换到:[b](1)”匹配,但与“Info:Focus切换到:[b](1)”不匹配。

您必须捕获包含随机字符串的两个空格之一

这与任何空间都不匹配:

[a-zA-Z0-9:]*
改用这个:

( [a-zA-Z0-9:]+)?

您必须捕获包含随机字符串的两个空格中的一个

这与任何空间都不匹配:

[a-zA-Z0-9:]*
改用这个:

( [a-zA-Z0-9:]+)?
我会:

$str =~ /Info:.*?Focus switched to: \[b\] \(1\)/;
其中,
*?
匹配任意数量的非贪婪字符。

我会:

$str =~ /Info:.*?Focus switched to: \[b\] \(1\)/;

其中,
*?
匹配任意数量的非贪婪字符。

所有输入字符串似乎都是相同的:)您的意思是什么?对不起,我不明白。这很混乱,你的正则表达式是什么,你的输入字符串是什么?预期的结果是什么?你的代码在哪里?我将编辑问题以澄清。对不起,所有的输入字符串看起来都是一样的:)你是什么意思?对不起,我不明白。这很混乱,你的正则表达式是什么,你的输入字符串是什么?预期的结果是什么?你的代码在哪里?我将编辑问题以澄清。SorryFirst try是肯定的,现在匹配没有“SOME_RANDOM_STRING:”现在我将尝试使用SOME_RANDOM_STRING:”First try是肯定的,现在匹配没有“SOME_RANDOM_STRING:”现在我将尝试使用SOME_RANDOM__STRING:”现在我将尝试使用SOME_RANDOM____STRING:”即使我已经有了一个有效的答案,我也尝试了你的,如果我已经有了一个有效的答案,工作谢谢