如何在序列中搜索不包含某个子字符串的特定匹配?如同想要搜索以CG
开头且中间不含AG
然后以其结尾的RNA序列?我跑的时候
regexp(mRNA, 'GU\w+[^AG]AG');
它为我提供了中间不包含A
或G
的匹配位置,而不是AG
子字符串。真的很感激帮助!
答案 0 :(得分:0)
以下正则表达式应该可以正常工作:
^(?!GC.*AG.*AG)CG.*AG$
它使用负前瞻断言(有关更多信息,请阅读this page)。访问this link获取完整的演示文稿。
如果您不确定您的字符串是否只包含大写字符,则可以将regexp
替换为regexpi
,mRNA = {
'CGUUAG'
'CGCGUCAG'
'AGUCGUAG'
'CGAGAG'
'UUAGAGCUUAGC'
'CGCGCGAG'
'CGAG'
'AAGCCU'
'GACU'
};
regexpi(mRNA,'^(?!CG.*AG.*AG)CG.*AG$')
ans =
[1]
[1]
[]
[]
[]
[1]
[1]
[]
[]
执行不区分大小写的匹配。例如:
form.instance.created_by = self.request.user