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

时间:2011-12-08 20:22:19

标签: java regex string-search

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

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

此语法似乎无论是否使用圆括号。最终,该代码的目的是计算在DNA串中发现氨基酸的次数,并且因为有大约20个氨基酸,所以我有许多模式。任何人都可以帮我找到一种优雅的方式吗?

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

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:-1)

<击>此:

<击>
/("gct")||("gcc")||("gca")||("gcg")/

等于:

/("gtc")/

因为双||意味着没有匹配。你猜怎么着?它永远匹配!

而是尝试使用一个|

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

<击>

甚至更好:

"gc[tcag]"

修改

哇没注意到@Tim

的布尔值:) +1