2

我有一行 DNA 代码,我正在尝试使用 Java 正则表达式将密码子(3 个字母序列)与氨基酸匹配。以下是其中一种模式的示例:

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

无论是否使用圆括号,此语法似乎都不起作用。代码的最终目的是计算在 DNA 串中发现氨基酸的次数,因为有 20 种左右的氨基酸,所以我有很多模式。谁能帮我找到一种优雅的方式来做到这一点?

我知道我可以使用 string1.equals(string2) 等,但我真的更愿意使用正则表达式。任何帮助将非常感激!

4

2 回答 2

4

您正在传递Pattern.compile()一个布尔值,它应该是一个字符串:

Pattern A = Pattern.compile("(gct)|(gcc)|(gca)|(gcg)");
于 2011-12-08T20:26:01.707 回答
-1

这:

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

等于:

/("gtc")/

因为双|| 表示不匹配。你猜怎么着?它会永远匹配!

而是尝试使用一个|

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

甚至更好:

"gc[tcag]"

编辑:

哇没有注意到布尔值:) +1 @Tim

于 2011-12-08T20:25:32.027 回答