我有一个要搜索的字符串列表,忽略了连续出现4次以上的包含A或G字符的任何字符串。例如,我想忽略诸如TCAAAATC或GCTGGGGAA之类的字符串。
我试过了:
unless ($string =~ m/A{4,}?/g || m/G{4,}?/g)
{
Do something;
}
但是我收到一条错误消息“在模式匹配(m //)中使用未初始化的值”。
任何建议,将不胜感激。
最佳答案
通过写
|| m/G{4,}?/g
您正在针对此正则表达式隐式测试
$_
。但是,$_
尚未初始化,因此会出现错误。写
unless ($string =~ m/A{4}/ || $string =~ m/G{4}/)
相反(请注意对正则表达式的简化),或者作为单个表达式,
unless ($string =~ m/A{4}|G{4}/)
关于perl - 模式匹配连续字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18326465/