Регулярное выражение для строки, представляющей код ДНК

#regex

#регулярное выражение

Вопрос:

Здравствуйте, я пытаюсь использовать регулярные выражения в программе Java. Я хотел бы, чтобы регулярное выражение идентифицировало строку неизвестной длины, символами которой являются только ‘C’, ‘A’, ‘G’ или ‘T’. Спасибо за вашу помощь.

Ответ №1:

Легко, просто используйте класс символов:

 [CAGT] 
  

Или если вся строка должна состоять из символов CAGT, чтобы она соответствовала:

 ^[CAGT] $
  

Комментарии:

1. Вся строка должна состоять только из ‘C’, ‘A’, ‘T’ или ‘G’

Ответ №2:

Добавление к вышесказанному :

 ^[CAGTcagt] $
  

Для обеспечения обнаружения символов нижнего и верхнего регистра.

Комментарии:

1. разве флаг / i не позаботился бы об этом?

Ответ №3:

Я не согласен с ответом, за который проголосовали больше всего. При [ACGT] большая строка приведет к значительному использованию памяти. Поэтому я бы использовал вместо этого отрицаемое регулярное выражение и проверил, не содержит ли строка вместо этого символов, отличных от [ACGT]:

 str !~ [^ACGTacgt]