在 R/Perl 正则表达式中使用 look-ahead/behind 进行复杂搜索
Using look-ahead/behind on complex search in R/Perl regex
我不知道如何在正则表达式中利用 lookaheads/behinds 来查找我正在搜索的 word/motif 的各个搜索位 (?) 之间的匹配项。
在一组 DNA 字符串中,我需要匹配 TGGA + 一个 C 或 T + 0-4 A/C/T/G + >= 5 C/T,但不希望在任何地方出现 GT比赛。我已经想出如何在 0-4 A/C/T/G(示例 #1)中消除它,但我无法弄清楚如何处理 G 来自 [A,C,T, G]{0,4} 和相邻的 T 来自 {5,}。
我尝试在将最后一部分扩展到 [C,T](?>!GT)[C,T]{4,} 之后添加一个向后看,以及 [A, C,T,G]{0,4} 不选取拆分的 GT 实例。任何 tips/help 将不胜感激!
当前正则表达式:
TGGA[C,T](?!GT)[A,C,T,G]{0,4}[C,T]{5,}
示例集:
1) TGGACGTGGTCCCCCC(不好,已处理)
2) TGGACGCCCCC (好)
3) TGGACGGGGTCCCCCC...(不好,我该如何解决?)
在相关的 G 字符之后使用否定先行来指示 T 不应跟随:
/TGGA[CT](?:[ACT]|G(?!T)){0,4}[CT]{5,}/
我不知道如何在正则表达式中利用 lookaheads/behinds 来查找我正在搜索的 word/motif 的各个搜索位 (?) 之间的匹配项。
在一组 DNA 字符串中,我需要匹配 TGGA + 一个 C 或 T + 0-4 A/C/T/G + >= 5 C/T,但不希望在任何地方出现 GT比赛。我已经想出如何在 0-4 A/C/T/G(示例 #1)中消除它,但我无法弄清楚如何处理 G 来自 [A,C,T, G]{0,4} 和相邻的 T 来自 {5,}。
我尝试在将最后一部分扩展到 [C,T](?>!GT)[C,T]{4,} 之后添加一个向后看,以及 [A, C,T,G]{0,4} 不选取拆分的 GT 实例。任何 tips/help 将不胜感激!
当前正则表达式:
TGGA[C,T](?!GT)[A,C,T,G]{0,4}[C,T]{5,}
示例集:
1) TGGACGTGGTCCCCCC(不好,已处理)
2) TGGACGCCCCC (好)
3) TGGACGGGGTCCCCCC...(不好,我该如何解决?)
在相关的 G 字符之后使用否定先行来指示 T 不应跟随:
/TGGA[CT](?:[ACT]|G(?!T)){0,4}[CT]{5,}/