2017-07-18 14 views
0

文字列内の同じ1文字からなる可変長文字列の開始位置と終了位置を見つける必要があります。 私はこのトピックFinding multiple occurrences of a string within a string in Pythonを見ましたが、私はそれが少しだと思います。文字列内の連続する1文字以上の文字列のPython正規表現

以下は私には何も与えませんが、5つの要素があると予想しています。

import re 
s = 'aaaaabaaaabaaabaaba' 
pattern = '(a)\1+' 
for el in re.finditer(pattern, s): 
    print 'str found', el.start(), el.end() 

ありがとうございます。

+0

(HTTPS [それはちょうど**生の文字列リテラル**使用し、うまく機能]:// ideoneを

あなたは生の文字列を使用することができます。 com/SxWJdh)。そして、あなたは4つの結果しか期待できません。それ以外の場合は、 '+'を '*'に置き換えてください。 –

+0

WiktorStribiżew、ありがとうございます。 – psb

答えて

-1

これは正規表現なので、バックスラッシュはではなく、は文字列レベルでエスケープする必要がありますが、正規表現で解釈する必要があります。

import re 
s = 'aaaaabaaaabaaabaaba' 
pattern = r'(a)\1+' # raw string 
for el in re.finditer(pattern, s): 
    print 'str found', el.start(), el.end()

これが生成します:

str found 0 5 
str found 6 10 
str found 11 14 
str found 15 17 
+0

ありがとうございました。承認済みと表示されます。 – psb

関連する問題