使用模式将多个字符串匹配到一个长字符串



我有一行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

最新更新