正则表达式 – 如何在数据位置打印匹配的字符串?
发布时间:2020-12-14 05:37:29 所属栏目:百科 来源:网络整理
导读:我试图在数据位置打印匹配的字符串,我该怎么办? $at ="at";@ar = DATA;@xxv = map(m/$at/g,@ar);print "@ar";print @xxv;print "n";__DATA__atgacaagcagacccaggggatacgat 我预计输出是 atgacaagcagacccaggggatacgat at at at 解决方法 通过s ///获得所需的
我试图在数据位置打印匹配的字符串,我该怎么办?
$at ="at"; @ar = <DATA>; @xxv = map(m/$at/g,@ar); print "@ar"; print @xxv; print "n"; __DATA__ atgacaagcagacccaggggatacgat 我预计输出是 atgacaagcagacccaggggatacgat at at at 解决方法
通过s ///获得所需的输出
$at ="at"; $ar = <DATA>; print $ar; $ar =~ s/$at(*SKIP)(*F)|./ /g; print $ar; __DATA__ atgacaagcagacccaggggatacgat 输出: atgacaagcagacccaggggatacgat at at at $at(* SKIP)(* F)扩展变量$at并将变量中存储的同一组字符与输入字符串相匹配.跟随(* SKIP)(* F)导致匹配失败并强制|右侧的模式匹配剩余的字符.所以.匹配除跳过的字符以外的所有字符.用空格替换那些匹配的字符将为您提供所需的输出. 参考文献: > http://perldoc.perl.org/perlre.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |