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

Java 使用模式将多个字符串匹配到一个长字符串,java,regex,string-search,Java,Regex,String Search,我有一行DNA代码,我试图使用Java正则表达式将密码子(3个字母的序列)与氨基酸匹配。以下是其中一种模式的示例: Pattern A = Pattern.compile(("gct")||("gcc")||("gca")||("gcg")); 无论是否使用圆括号,此语法似乎都不起作用。代码的最终目的是计算在DNA串中发现氨基酸的次数,因为有20个左右的氨基酸,所以我有很多模式。有人能帮我找到一个优雅的方法吗 我知道我可以使用string1.equals(string2)等,但我更愿意使用正则

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

Pattern A = Pattern.compile(("gct")||("gcc")||("gca")||("gcg"));
无论是否使用圆括号,此语法似乎都不起作用。代码的最终目的是计算在DNA串中发现氨基酸的次数,因为有20个左右的氨基酸,所以我有很多模式。有人能帮我找到一个优雅的方法吗

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

这是:

等于:

/("gtc")/
因为double | |意味着不匹配。你猜怎么着?它将永远匹配

相反,尝试使用一个
|

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

或者更好:

"gc[tcag]"
编辑:


Wow没有注意到您正在传递的布尔值:)+1到@Tim

Pattern.compile()应该是字符串:

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

“Double
|
的意思是不匹配”-你在说什么?@MΓΓБСLL我说的是emtpy交替。如果你需要快速搜索,有更快速的方法来搜索DNA序列。也许你可以给出一个关于这些快速方法是什么的提示?
Pattern A = Pattern.compile("(gct)|(gcc)|(gca)|(gcg)");