在 Perl 中如何将字符串转换为与自身匹配的正则表达式?
我有一组像这样的字符串:
Enter your selection:
Enter Code (Navigate, Abandon, Copy, Exit, ?):
我想将它们转换为正则表达式,以便我可以将其他内容与它们匹配。在大多数情况下,字符串与正则表达式相同,但在上面的第二个示例中并非如此,因为 ( 和 ? 在正则表达式中具有含义。因此第二个字符串需要成为如下表达式:
Enter Code \(Navigate, Abandon, Copy, Exit, \?\):
我不需要太严格的匹配,所以像这样就可以了:
Enter Code .Navigate, Abandon, Copy, Exit, ..:
我目前的想法是我可以使用类似的东西:
s/[\?\(\)]/./g;
但我真的不知道字符串列表中将包含哪些字符,如果我错过了一个特殊字符,那么我可能永远不会注意到程序没有按预期运行。我觉得应该存在一个通用的解决方案。
Thanks.