Một số chẵn của A có thể được biểu thị dưới dạng (AA)+
(một hoặc nhiều bản sao của AA
; vì vậy nó sẽ phù hợp với AA, AAAA, AAAAAA ...). Một số G lẻ có thể được biểu thị dưới dạng G(GG)*
(một G
theo sau là không hoặc nhiều bản sao của GG
, do đó sẽ khớp với G, GGG, GGGGG ...).
Kết hợp điều đó lại với nhau và bạn có:
/(AA)+G(GG)*TC/
Tuy nhiên, vì các công cụ regex sẽ cố gắng khớp nhiều nhất có thể, nên biểu thức này sẽ thực sự khớp với một chuỗi con của AAAGGGTC
(tức là. AAGGGTC
)! Để ngăn chặn điều đó, bạn có thể sử dụng cái nhìn tiêu cực
để đảm bảo rằng ký tự trước A
đầu tiên không phải là A
khác :
/(?<!A)(AA)+G(GG)*TC/
... ngoại trừ việc MySQL không hỗ trợ giao diện trong regexes của chúng.
Thay vào đó, những gì bạn có thể làm là chỉ định rằng mẫu bắt đầu ở đầu chuỗi ( được neo bởi ^
), hoặc đứng trước một ký tự không phải là A:
/(^|[^A])(AA)+G(GG)*TC/
Nhưng lưu ý rằng với mẫu này, một ký tự phụ sẽ được ghi lại nếu mẫu không được tìm thấy ở đầu chuỗi, vì vậy bạn sẽ phải cắt ký tự đầu tiên nếu nó không phải là A.