2014-01-21 43 views
-3

我想拿出在Perl的正则表达式来捕获以下fork炸弹命令:在Perl的正则表达式来捕捉fork炸弹命令

:(){ :|:& };: 

下面是我想出了。

:\s*(\s*)\s*{\s*:\s*|\s*:\s*&\s*}\s*;.*: 

我同意这个正则表达式有限制。叉炸弹命令可以很容易地改变,给定的正则表达式不会捕获它。然而,正则表达式是一个要求。有没有更好的方法来捕捉这个特定的Perl?

+6

有什么意义?你改变了一下,它仍然是一个叉形炸弹,但正则表达式不会识别它。 –

+2

尝试用正则表达式捕获它最终是徒劳的。不要从不受信任的源运行shell命令。 – duskwuff

+0

您是否试图捕获*正确*上述命令或任何*叉炸弹命令与您的正则表达式? –

回答

3

中平凡:

/\Q:(){ :|:& };:/ 

现在告诉我们你真正想做到:你想匹配的内容从确切的文本类型的变化。如果你能用英文来形容它,你就有机会获得它的正则表达式;如果没有,不是。

+0

谢谢。我知道\ Q返回所有下面的非单词字符的值。然而,如果中间有额外的空格,你的正则表达式不会捕获叉式炸弹。最后,我想创建一个正则表达式来捕获给定的叉式炸弹,即使函数名称“:”不同。 – user3217295