文字列に "A" 、 "G" 、 "C" 、 "U" 以外の文字が含まれているかどうかを確認する正規表現が必要です e 文字列は ggggugcccgcuagagagacagu のようになります
これらのみが含まれているかどうかを正規表現で確認したいのですが、大文字と小文字は区別されません。
私が試したこと
match= re.match(r'[^GaAgUuCc]',seq2)
RNA配列の非RNA文字を見つけることです
文字列に "A" 、 "G" 、 "C" 、 "U" 以外の文字が含まれているかどうかを確認する正規表現が必要です e 文字列は ggggugcccgcuagagagacagu のようになります
これらのみが含まれているかどうかを正規表現で確認したいのですが、大文字と小文字は区別されません。
私が試したこと
match= re.match(r'[^GaAgUuCc]',seq2)
RNA配列の非RNA文字を見つけることです
re.search
代わりに使用してください:
>>> re.search(r'[^GAUC]', 'acg', re.I)
>>> re.search(r'[^GAUC]', 'acgf', re.I)
<_sre.SRE_Match object at 0x7f1b6a9e32a0>
re.I
正規表現で大文字と小文字を区別しません。
より迅速な方法は、セットを使用して、文字セットが許可された文字のサブセットであるかどうかを確認することです。
>>> set('acg'.upper()) <= set('GAUC')
True
>>> set('acgs'.upper()) <= set('GAUC')
False
より多くの文字に一致させるには、正規表現で量指定子を使用する必要があります: -
>>> match = re.search("[^GAUC]+","ggggugcccgcuagrrragagacagu", re.I)
>>> match
9: <_sre.SRE_Match object at 0x01BCA8A8>
>>> match.group()
10: 'rrr'
re.search()
orre.findall()
ではなくを使用する必要がありますre.match()
。
In [9]: seq2 = 'ggggugcccQgcuagagaZgacagu'
In [10]: re.findall(r'[^GaAgUuCc]',seq2)
Out[10]: ['Q', 'Z']