加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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$/;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读