2016-11-06 23 views
0

私はプログラミングがとても新しいです。このサイトとGoogleを検索しましたが、この問題を解決できないようです。私は似たような話題を見つけていますが、まだこれを理解することはできません。また、特定の単語を除外する単語を見つけるためのPythonの正規表現

非常に大きな単語リストを含むテキストファイルがあります。言葉はすべて番号が付けられ、また「名詞」、「形容詞」または「動詞」によって分類されます。

このリストから単語を抽出したいと思いますが、数字と「noun」、「形容詞」、「動詞」の3つの単語は除外します。

私はキャレット文字を使用する必要があることは知っていますが、それを機能させるようには見えません。

[^a-z](?!noun|adjective|verb)([a-z]+) 
+0

「私はキャレット文字を使用する必要が知っている..」あなたはそれを読んだので: – usr2564301

答えて

1
import re 

with open('wordList.txt') as f: 
    for line in f: 
     if re.search("^(?!noun|adjective|verb|\d)", line): 
      print(line) 
0

import re 
import os 

textFile = open('/Users/MyComputer/wordList.txt') 

textFileContent = textFile.read() 

wordFinder = re.compile(r""" 
[a-z]+ # finds words 
[^noun|adjective|verb] # THIS IS WRONG 
""", re.VERBOSE | re.I) 

regexResults = wordFinder.findall(textFileContent) 
は、私はあなたがこの正規表現の表現を与えることができる negative look-ahead、使用することをお勧め論理的な `not`です、そうですか?しかし、*文字クラス*を否定するだけです。あなたはそれを、「これらの文字のうちの1つだけ」というように、「nではなく、oでなく、uでなく、パイプでもない」というようにチェックしました。それは「言葉」では機能しません。
関連する問題