적어도 네 개의 G- 반복을 일치 시키려고합니다. 각 반복은 최대 7 자로 구분됩니다. 예 :Perl 정규식이 반복되는 문자열이 일치하지 않음
AAGGGAAGGGAAAGGGAAGGGAA
대/소문자와 일치해야하는 정규 표현식을 사용합니다.
$sequence =~ /((G{3,}[ATGC]{1,7}){3,}G{3,})/gi
적어도 4 개의 G 반복과 일치해야합니다.
aaagaggaaaaggggaaaaggggaaaaggggaaa
이 순서의 첫 번째 반복은으로 구분 세 GS를 포함한다 : 문제는 그 다음 순서와 일치 할 때 나는 긍정적 인 히트를 얻을 것이다. 따라서이 순서는 일치하지 않아야합니다.
해결 방법 1 : 문제가/i 수정자인 것으로 보입니다. 내가 정규식을 수정하여 해결할 수 있습니다 :
$sequence =~ /(([gG]{3,}[aAtTgGcC]{1,7}){3,}[gG]{3,})/g
솔루션 2 ikegami에서 제공 : 부정적인 lookahead.
$sequence =~ /(([?!G]{3,}[ATGC]{1,7}){3,}[G]{3,})/gi
힌트 및 버그 신고를 제출해 주셔서 감사합니다.
두 번째 시퀀스에서 (https://regex101.com/r/osA53E/1) 긍적 적중이 발생했습니다. –
@Nicolas Maltais, OP는 PCRE가 아닌 Perl을 사용합니다. – ikegami
적어도 4 개의 G를 일치 시키려면 수량 기호가 3에서 시작하는 이유는 무엇입니까? – shawnhcorey