我正在使用这个正则表达式来查找基因组中的模式。
$string =~ /(?i)a+t?|(?i)t+/g
为了使输出更易于阅读,我想对其进行修改,以便将其匹配的任何长度为 4 到 7 个字符的内容大写。它也不应该搞乱
$+[0]
或 $-[0]
变量。我输出的方式是从基于 '$+[0]' 和 '$+[0]' 的较大字符串文件中获取子字符串,我不想打印我正在打印的正则表达式匹配项出大量的校正器,我希望比赛脱颖而出。
如果您真的需要查看我正在编写的代码,您可以获取它 here
最佳答案
通过适当的测试(对于您的匹配和长度(可能需要带有 {4,7} 等量词的字符组),没有示例内容,这留给您)您可以使用 eval 替代 s/(match)/uc($1)/eg
这将采用匹配的字符串并使其大写,然后用替换替换匹配。
一如既往地阅读更多信息 perldoc perlre
perldoc perlreref
perldoc perlretut
作为旁注,我一直想知道 Genomes 是否是 Regexp::Grammars
的良好候选者。 ?
关于regex - Perl:如何将正则表达式匹配大写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6508613/