2017-08-25 183 views
3

我想寫一個匹配以下指令的正則表達式 帶有「AT」前綴的字符序列,後跟「nG」,其中n是從1到5的數字,然後是「G」,最後跟着一個5位數的後綴。蛋白質編碼基因正則表達式

注意:只是普通的正則表達式不是語言特定的。

匹配的字符串的一個例子是這樣的:「AT1G01040」

這是我可以構建AT[1-5]G(d\{1,5})但我不知道這是否是正確的答案。

請,我需要你的手對此表示感謝。

+0

_後跟後綴爲5個數字digits_ - 您的意思是準確還是最多?如果確切的話,你需要'\ d {5}',而不是'1,5'。 –

+0

一些正則表達式引擎不支持'\ d',或者默認情況下也匹配Unicode數字,因此,我建議堅持'[0-9]'字符類/括號表達式。 –

+0

'AT [1-5] G(d \ {1,5})'??你不是指'AT [1-5] G(\ d {1,5})'\ d爲數字 - 我假設這是一個錯字:) –

回答

3

如果數字在端部的數量可以是從1至5,可以使用

^AT[1-5]G[0-9]{1,5}$ 

regex demo

注意的是,如果在最後的位數必須正好是5個,則必須刪除1,

^AT[1-5]G[0-9]{5}$ 

詳細

  • ^ - 串
  • AT的開始 - 一串字符AT
  • [1-5] - 12345
  • G - 一個G
  • [0-9]{1,5} - 一個ASCII數字的任何1至5連續出現(或 - 如果使用{5} - 精確至5次)
  • $ - 字符串結尾。
+0

嘿Wiktor非常感謝這個答案形式我的指示I認爲這是我的正確答案。^AT [1-5] G [0-9] {1,5} $ –

+0

請如果我沒有脫離主題,您是否也可以幫助我使用能夠識別這些字符串的非確定性有限自動機(NFA)? –

+0

你是什麼意思?上面的表達式將驗證符合您要求的字符串。如果你需要從一些較長的文本中提取它們,你應該在大多數語言中用'\ b'替換'^'和'$'來代替單詞邊界。 –