2016-08-01 5 views
0
import re 

b=re.findall('[A-Z]+[a-z]+[A-Z]',k) 

for i in b: 
    print (i) 

私はこのコードを書いています。 kの文字列が長すぎてここに印刷できません。 私は後半が小文字で、各辺に正確に3文字が大文字であるすべてのサブストリングのセットを見つける必要があります。 私はこのコードがうまくいくと思います。しかし、各部分文字列の文字の乱数の印刷。 私のコードで何が問題になっていますか、それをどうやって解決できますか? 助けてください!Python Challenge-#3:7の代わりにランダムな文字を表示します。

+1

今のところ、左右の文字が3つではなく、大文字であるかどうかだけをチェックしています。 –

+0

実際には、左側の文字数が1より大きく、右側の文字が1文字です。 – James

答えて

0

正規表現には、大文字の1文字以上が一致する+を使用しないでください。あなたがAAAbCCCのようなものを取得する必要がある場合は、単に試してみてください。

b=re.findall('[A-Z]{3}[a-z][A-Z]{3}',k) 
+0

ありがとうございます。その完全なコードではありません。しかし、それは正しい道に私を置いた –

0

あなたは、nが整数である{n}とアトム/レンジ/グループの繰り返しを指定することができます。

真ん中の部分文字列が唯一つの文字でなければならない場合、私はそれが1つの以上小文字と一致してしまうため、+を削除し、[A-Z]{3}[a-z]+[A-Z]{3}、またはより良いにあなたの正規表現を変更したい:[A-Z]{3}[a-z][A-Z]{3}を。

+0

ありがとう。それは助けになった。 –

関連する問題