regex - Perl:如何将正则表达式匹配大写?

标签 regex perl capitalization

我正在使用这个正则表达式来查找基因组中的模式。

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

相关文章:

javascript - 使用正则表达式从字符串中提取 ip 地址

perl - perl 中的 -T 选项

php - 仅返回字符串开头的大写字母的函数?

c# - 为什么在 Java(和其他)中大写类名只是一个建议而不是规则?

regex - 特殊字符后的首字母大写

java - 检查给定路径上是否存在任何 Zip 文件

c++ - 如何在 C++ 中使用 boost::regex 获取字符串?

java - 解决以下正则表达式

regex - perl,将字符附加到第i个捕获组

perl - 从 CPAN 安装模块时无法识别 dmake 命令