Сопоставление нескольких строк с одной длинной строкой с использованием шаблонов - PullRequest
2 голосов
/ 09 декабря 2011

У меня есть строка кода ДНК, и я пытаюсь использовать выражение регулярного выражения Java, чтобы сопоставить кодон (трехбуквенную последовательность) с аминокислотой.Ниже приведен пример одного из шаблонов:

Pattern A = Pattern.compile(("gct")||("gcc")||("gca")||("gcg"));

Этот синтаксис не работает с круглыми скобками или без них.В конечном счете, цель кода - подсчитать, сколько раз аминокислота обнаруживается в цепочке ДНК, и так как у меня около 20 аминокислот, у меня столько шаблонов.Может кто-нибудь помочь мне найти элегантный способ сделать это?

Я знаю, что мог бы использовать string1.equals (string2) и т. Д., Но я действительно предпочел бы использовать для этого регулярное выражениеЛюбая помощь будет высоко ценится!

Ответы [ 2 ]

4 голосов
/ 09 декабря 2011

Вы передаете Pattern.compile() логическое значение, где оно должно быть строкой:

Pattern A = Pattern.compile("(gct)|(gcc)|(gca)|(gcg)");
0 голосов
/ 09 декабря 2011

Это:

/("gct")||("gcc")||("gca")||("gcg")/

Равно как:

/("gtc")/

Потому что double ||значит ничего не соответствует.И угадай что?Он всегда будет совпадать!

Вместо этого попробуйте использовать один |

/("gct")|("gcc")|("gca")|("gcg")/

Или даже лучше:

"gc[tcag]"

Редактировать:

Ух ты не заметил логическое значение :) +1 к @ Тиму

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...