2016-10-01 9 views
1

の一部を取得します。は、私は次のテキスト形式を持って試合

Phrase: 
cat, fish. 
Some text. 
Phrase: 
flat, apple, orange. 
Other text. 

私は次の改行までPhrase:後に単語だけを抽出したい:

cat, fish, flat, apple, orange

これは、私が試している正規表現Regexr.com

(Phrase:)\n(.*)しかし、それはPhraseと言葉。

どのように単語を取得するには?

+0

ですそれ?どんなオンラインツールですか?または任意のプログラミング言語で?詳細を追加 – mtk

+0

@mtkの質問が更新されました。 – CuriousGuy

+0

はhttps://regex101.com/で試してみると、あなたの正規表現をあなたが持っているデータとマッチさせるのに役立ちます。正規表現が何をしているのかを説明してくれます。 – Amias

答えて

1

うだろう:あなたが得ることによって

/Phrase:\n([^\n]*)\n/g 

をフレーズ:\ n(任意)\ n

とグループ[1]の内容はすべて

1

JavaScript正規表現(ここでは正規表現を使用しているため)を使用することはできません。

(?<=Phrase:\n).* 

「フレーズ:」の後に一部だけにマッチします:あなたはそれをモデル化するために肯定後読みを使うことができ、ほとんどの正規表現エンジンで。しかし、JavaScriptでは、あなたはlookbehindを持っていません。あなたができることは、あなたがすでに行っていることです。興味のある部分をグループに入れて、代わりにそのグループを抽出します。

+0

グループをどのように抽出すればいいですか? – CuriousGuy

+0

@CuriousGuyは、プログラミング言語によって異なります。 – Joey

1

あなたがに喜んでいる(または使用することができます)の場合は、Pythonを使用し、文字列の通常のスプリット機能はない仕事

In [1]: s 
Out[1]: 'Phrase:\ncat, fish.\nSome text.\nPhrase:\nflat, apple, orange.\nOther text.' 

In [2]: print s 
Phrase: 
cat, fish. 
Some text. 
Phrase: 
flat, apple, orange. 
Other text. 



In [3]: s.split('Phrase:\n') 
Out[3]: ['', 'cat, fish.\nSome text.\n', 'flat, apple, orange.\nOther text.'] 

In [4]: l = s.split('Phrase:\n') 

In [5]: print l[0] #Yes it's empty 


In [6]: print l[1] 
cat, fish. 
Some text. 


In [7]: print l[2] 
flat, apple, orange. 
Other text. 
+0

split関数でもregex by joeyを使うことができます。 – mtk

関連する問題