regex – 如何将字符串转换为在Perl中匹配的正则表达式?
发布时间:2020-12-15 23:31:40 所属栏目:大数据 来源:网络整理
导读:如何将字符串转换为在Perl中与自身匹配的正则表达式? 我有一组像这样的字符串: Enter your selection:Enter Code (Navigate,Abandon,Copy,Exit,?): 我想将它们转换为正则表达式,我可以匹配其他东西.在大多数情况下,字符串与正则表达式相同,但在上面的第二
如何将字符串转换为在Perl中与自身匹配的正则表达式?
我有一组像这样的字符串: Enter your selection: Enter Code (Navigate,Abandon,Copy,Exit,?): 我想将它们转换为正则表达式,我可以匹配其他东西.在大多数情况下,字符串与正则表达式相同,但在上面的第二个示例中没有,因为(和?在正则表达式中有意义.因此第二个字符串需要变成如下表达式: Enter Code (Navigate,?): 我不需要匹配太严格,所以像这样的东西会很好: Enter Code .Navigate,..: 我目前的想法是,我可以使用类似的东西: s/[?()]/./g; 但我真的不知道字符串列表中会有哪些字符,如果我错过了一个特殊字符,那么我可能永远不会注意到程序没有按预期运行.我觉得应该有一个普遍的解决方案. 谢谢. 解决方法
正如Brad Gilbert评论使用
quotemeta:
my $regex = qr/^Q$stringE$/; 要么 my $quoted = quotemeta $string; my $regex2 = qr/^$quoted$/; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |