2016-08-01 8 views
1

文字列 'list'を入力としてそれに応じてフォーマットする必要があります。文字列を整数に分割する

string = "This is the input:1. A list element;2. Another element;3. And another one."

そして私は、出力は次の形式のリストになりたい::ここではいくつかの例で入力がある

list " ["This is the input:", "A list element;", "Another element;", "And another one."]

私は次のことをやって試してみました:

list = string.split('(\d+). ')

すべての整数で分割され、 pと空白がありますが、動作していないようです。単一の要素リストだけが返され、分割基準が見つからないことを示します。

誰かが間違っているのを見てください。あなたは、ドットとスペースに続いて1桁以上の数字が続く:または;re.split() method分割を使用することができます

+0

alecxeがそれを行う方法に答えています。あなたが間違っているのは、a) 'string.split()'は正規表現を取らず、リテラルテキストだけを取り、b)regexの '.'は何にもマッチする特殊文字です。 dot *は '.'をバックスラッシュでエスケープする必要があります。 – TessellatingHeckler

+0

入力してくれてありがとう、 '.'をエスケープしていない自分自身を蹴っていますが、とにかく' \ d'でうまくいきませんでした。 –

答えて

2

>>> re.split(r"[:;]\d+\.\s", s) 
['This is the input', 'A list element', 'Another element', 'And another one.'] 

を分割内部:;を維持するには、positive lookbehind checkを使用することができます:

>>> re.split(r"(?<=:|;)\d+\.\s", s) 
['This is the input:', 'A list element;', 'Another element;', 'And another one.'] 
関連する問題