我正在使用这个正则表达式来查找基因组中的模式。
$string =~ /(?i)a+t?|(?i)t+/g
为了使输出更容易阅读,我想修改它,以便将匹配的任何东西大写为4到7个字符长。此外,它不应该弄乱$+[0]
或$-[0]
变量。
我输出的方式是根据'$ + [0]'和'$ + [0]'从较大的字符串文件中获取子字符串我不想打印出正则表达式匹配我正在打印出大量的校正器,我希望这些比赛能够脱颖而出。
如果你真的需要查看我正在处理的代码,你可以得到它here
答案 0 :(得分:10)
通过适当的测试(对于你的匹配和长度(可能需要像{4,7}这样的量词的字符组),没有示例内容,这是留给你的)你可以使用eval替代s/(match)/uc($1)/eg
将获取匹配的字符串并使其为大写,然后将替换匹配替换。
始终在perldoc perlre
perldoc perlreref
perldoc perlretut
作为旁注,我一直想知道基因组是否是Regexp::Grammars
的好候选人?