2017-08-25 9 views
3

次の指示に一致する正規表現を書こうとしています "AT"接頭辞の後に "nG"が続く文字列と1から5までの数字"G"と最後に5桁の接尾辞が続きます。タンパク質コード遺伝子正規表現

注:普通の正規表現ではない言語固有の。

一致する文字列の例は、このです:ここでは「AT1G01040」

私はAT[1-5]G(d\{1,5})を構築することができるものであるが、私はそれが正解であるかどうかわからないです。

お願いします。ありがとうございました。

+0

- あなたが正確かまでは意味ですか?正確に言うなら、 '1,5 'ではなく' \ d {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の開始 - charのシーケンスAT
  • [1-5]から1234または5
  • GからG文字
  • [0-9]{1,5} - 任意の1〜5の連続したASCII数字の出現(または - あなたは{5}を使用する場合 - 正確に5回の出現)
  • $ - 文字列の最後。 5数値digits_の接尾辞によって_followed
+0

こんにちはWiktorは、これは私の正解だと思います。^AT [1-5] G [0-9] {1,5} $ –

+0

あなたがトピックでない場合は、これらの文字列を認識できる非決定性有限オートマトン(NFA)を教えてください。 –

+0

どういう意味ですか?上記の式は、要件に合った文字列を検証します。長いテキストからそれらを抽出する必要がある場合は、 '^'と '$'を単語の境界、ほとんどの言語では '\ b'に置き換えてください。 –