前提・実現したいこと
ある英語大文字の文字列の部分文字列であってA,T,G,Cのみで構成されるようなものの最大の長さをこたえる、という問題をpythonの正規表現を利用して解く。
re.searchの場合、()を使って、re.search("(A|T|G|C)+",s)としてみればAまたは
TまたはCまたはGを繰り返すと指定できます。しかしre.findallを使うとき()がこのようには機能しないようで困っています。
どのようにすればre.finaallを使ってこの問題を解くことができるのでしょうか。
発生している問題・エラーメッセージ
HATAGAYA#input #searchを使うと以下のように正しく出てくる。ただし長い文字列が先頭近くにある場合に限る。 <re.Match object; span=(1, 6), match='ATAGA'> HATAGAYA#input ['A', 'A']#findallだと一文字しか出てこない。
該当のソースコード
python
1s=input()#searchを使ったとき。 2import re 3ans=re.search("(A|T|G|C)+",s) 4print(ans) 5 6s=input()#findallを使ったとき。 7import re 8ans=re.findall("(A|T|G|C)+",s) 9print(ans)
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答3件
あなたの回答
tips
プレビュー