Matlab - 正则表达式,不包括子字符串

时间:2018-02-08 17:47:24

标签: regex matlab

如何在序列中搜索不包含某个子字符串的特定匹配?如同想要搜索以CG开头且中间不含AG然后以其结尾的RNA序列?我跑的时候

regexp(mRNA, 'GU\w+[^AG]AG');

它为我提供了中间不包含AG的匹配位置,而不是AG子字符串。真的很感激帮助!

1 个答案:

答案 0 :(得分:0)

以下正则表达式应该可以正常工作:

^(?!GC.*AG.*AG)CG.*AG$

它使用负前瞻断言(有关更多信息,请阅读this page)。访问this link获取完整的演示文稿。

如果您不确定您的字符串是否只包含大写字符,则可以将regexp替换为regexpimRNA = { '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