2011-12-08 101 views
2

我有一行DNA代碼,我嘗試使用Java正則表達式將密碼子(3字母序列)與氨基酸相匹配。以下是其中一種模式的示例:使用模式將多個字符串匹配到一個長字符串

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

此語法似乎無法使用或不使用圓括號。最終代碼的目的是計算DNA字符串中發現氨基酸的次數,並且由於有大約20個氨基酸,我有許多模式。任何人都可以幫我找到一個這樣做的優雅方式?

我知道我可以使用string1.equals(string2)等,但我真的寧願使用它的正則表達式。任何幫助將非常感激!

+1

如果您需要此要快,有很多** **更快的方法來搜索DNA序列。 –

+0

也許你可以給出一個暗示,這些更快的方法是什麼? –

回答

4

你傳遞Pattern.compile()一個布爾值,它應該是一個字符串:

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

好眼睛:) + 1 – FailedDev

+0

非常感謝Tim! – user1058210

-1

本:

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

等於:

/("gtc")/ 

由於雙||意味着什麼都不搭你猜怎麼着?它將永遠匹配!

而是嘗試使用一個|

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

甚至更​​好:

"gc[tcag]" 

編輯:

哇沒有注意到布爾:) +1到@Tim

+0

_「Double'||'表示不匹配」_ - 你在說什麼? –

+0

@MДΓΓБДLL我正在談論一個emtpy變更。 – FailedDev

相關問題