2016-10-15 18 views
-1

ファイル内の2つの*文字の間でテキストを選択したいので、正規表現を作成する際に問題があります。正規表現で2つの "*"文字の間の文字列を選択する

* Apple 
Are good 

* Banana 
Are great 

* Cauliflower 
Are bad 

それは3つの異なるグループ

アップル を選択することになる良い

バナナ は素晴らしい

されている次のようなファイルを例えば

カリフラワー が悪い

です私はこのために^と$を使用する必要がありますが、私のセレクタと信じて:^\*$\*

が機能していません。

+0

::(。*?) '[*] [* $]'グループ0私は疑うことがありますだけでstr.splitstr.stripを使用しています。 '*'を大括弧で囲むか、 '\ 'でエスケープするかを確認してください。 – CollinD

+0

行の始まりや終わりにマッチしないのであれば、なぜ'^'と' $ 'を使っていますか?あなたの式では '\ *'以外の実際の文字とは何も一致しないと思いますか?私は正規表現についてもっと研究する必要があると思います。 – TigerhawkT3

+0

多分私はこのようなREがどのように機能するのか混乱しています。他の '' "*" ''が現れるまで、単に '' * '''の後にテキストを選択することはできません – chackerian

答えて

2

ここでも正規表現は必要ありません。あなたは、シングルラインモードで動作すると仮定すると、

>>> f = '''* Apple 
... Are good 
... 
... * Banana 
... Are great 
... 
... * Cauliflower 
... Are bad''' 
>>> for line in f.split('*'): 
...  if line.strip(): 
...    print('start') 
...    print(line.strip()) 
...    print('end') 
... 
start 
Apple 
Are good 
end 
start 
Banana 
Are great 
end 
start 
Cauliflower 
Are bad 
end 
関連する問題