2012-01-12 12 views
4

私はスプレッドシートのテキストダンプを解析する必要があります。私はデータの各行を正しく解析する正規表現を持っていますが、かなり長いです。基本的には、特定のパターンを12または13回マッチングさせるだけです。正規表現のセクションを繰り返す?

私は繰り返したいパターンはこれが正規表現(短縮)

^\s+(\w*\.*\w*);\s+(\w*\.*\w*);\s+(\w*\.*\w*);\s+(\w*\.*\w*);\s+(\w*\.*\w*);\s+(\w*\.*\w*); 

ある

\s+(\w*\.*\w*); 

あるようにコピー&ペーストすることなく、時間のパターンセット数を一致させる方法はありますこの?これらのセクションのそれぞれは、必要なすべてのデータ列に対応しています。私はPythonを使っています。ありがとう!

(\s+(\w*\.*\w*);)* 

あなたはまだfindall方法を見つけました:使用について

+0

受け入れられた回答を変更する時間。 – Noumenon

答えて

3

どのように?または;に分割することを検討してください。

map(lambda x: x.strip(), s.split(";")) 

あなた本当にが望むものと考えられます。

+0

ああ、それは素晴らしい考えです。セミコロンで分割する方がはるかに簡単です。私がする必要があるのは、空白を取り除くことだけです。ありがとう! –

+3

ええと、私の例の「ストリップ」が何をしているのかな... –

28

(\s+(\w*\.*\w*);){12}

したい場合{n}は、 "繰り返しn回"

である "12から13" 回をしたい場合は、

(\s+(\w*\.*\w*);){12,13}

"12+" 回、

(\s+(\w*\.*\w*);){12,}

関連する問題