2017-04-05 8 views
-1

大きなファイルから特定のコンテキストに囲まれたすべての単語を探して抽出したいと思います。ファイル内のすべての行が><\w>間で異なる言葉ではなく、このようなようなものを見て:grepを使用して特定のコンテキストで文字列を検索

<="UO" lemma="|" lex="|" sense="|" prefix="|" suffix="|" compwf="|" complemgram="|" ref="05" dephead="04" deprel="ET">and<\w> 

私は唯一の出力が可能「と」したいと思います。だから私は基本的に文脈にあるすべての文字列(単語、句読点、数字)を抽出したい。>xxx<\w>

and 
we 
appreciate 
this 
very 
much 
. 

:私は、出力は次のようになりたいと思うファイル全体から...私はgrepをし、正規表現と異なる選択肢の束を試みたが、私は><\w>ですべての単語またはパターンを得るのいずれかそれで...

+1

入力テキストと予想される出力を追加 – RomanPerekhrest

+0

申し訳ありませんが、何らかの理由で初めて –

+2

を投稿したときに表示されませんでした。「私は出力が欲しいだけです」とあなたが達成しようとしていることの十分な説明ではありません。出力をどのように表示するかの例を教えてください。それ以外の場合は、このコードを使用することをお勧めします。 'echo"と " – sadmicrowave

答えて

0

このようなパターンを使用することができます。これは><\w>の間で一致します。

import re 
pat = re.compile(r'>(.*?)<\\w>') 
pat.findall(input_string) 
+0

あなたのパターンは、希望の結果から '>'と '<\w>'文字セットを除外しません – sadmicrowave

0

<="UO" lemma="|" lex="|" sense="|" prefix="|" suffix="|" compwf="|" complemgram="|" ref="05" dephead="04" deprel="ET">and<\w> 
<="UO" lemma="|" lex="|" sense="|" prefix="|" suffix="|" compwf="|" complemgram="|" ref="05" dephead="04" deprel="ET">we<\w> 
<="UO" lemma="|" lex="|" sense="|" prefix="|" suffix="|" compwf="|" complemgram="|" ref="05" dephead="04" deprel="ET">appreciate<\w> 
<="UO" lemma="|" lex="|" sense="|" prefix="|" suffix="|" compwf="|" complemgram="|" ref="05" dephead="04" deprel="ET">this<\w> 
<="UO" lemma="|" lex="|" sense="|" prefix="|" suffix="|" compwf="|" complemgram="|" ref="05" dephead="04" deprel="ET">very<\w> 
<="UO" lemma="|" lex="|" sense="|" prefix="|" suffix="|" compwf="|" complemgram="|" ref="05" dephead="04" deprel="ET">much<\w> 
<="UO" lemma="|" lex="|" sense="|" prefix="|" suffix="|" compwf="|" complemgram="|" ref="05" dephead="04" deprel="ET">.<\w> 

次のPythonの正規表現は、あなたのために働く必要があります。次の値(私はあなたのユースケースを理解願っています)と、入力ファイルが与えられ

>>> import re 
>>> pat = re.compile(r'(?<=">)(.*)(?=<\\w>)') 
>>> pat.findall(input_string) 
['and', 'we', 'appreciate', 'this', 'very', 'much', '.'] 
+0

あなたのパターンは句読点に失敗します。最後の '.'のように –

+0

あなたは正しいですが、正規表現 – sadmicrowave

+0

が'> 'の間にあれば更新しましたか? '' <\w> ' –

関連する問題