我有一行DNA代码,我正试图使用Java正则表达式将密码子(3个字母序列)匹配到氨基酸。下面是其中一个模式的示例:
Pattern A = Pattern.compile(("gct")||("gcc")||("gca")||("gcg"));
这个语法似乎不工作与圆括号或没有。代码的最终目的是计算氨基酸在DNA链中出现的次数,因为有20个左右的氨基酸,我有这么多模式。有谁能帮我找到一个优雅的方法吗?
我知道我可以使用string1.equals(string2)等,但我真的宁愿使用正则表达式。任何帮助将非常感激!
你传递给Pattern.compile()
一个布尔值,它应该是一个字符串:
Pattern A = Pattern.compile("(gct)|(gcc)|(gca)|(gcg)");
This:
/("gct")||("gcc")||("gca")||("gcg")/
= to:
/("gtc")/
因为double ||表示不匹配。你猜怎么着?它总是匹配的!
尝试使用一个|
/("gct")|("gcc")|("gca")|("gcg")/
或者更好:
"gc[tcag]"
编辑:哇,没有注意到布尔值:)+1到@Tim