2016-11-06 78 views
0

我很新的編程。我搜索了這個網站和谷歌,但似乎無法解決這個問題。我找到類似的話題,但仍然無法弄清楚這...Python的正則表達式來查找單詞,這也排除了特定的單詞

我有一個文本文件,包含一個非常大的單詞列表。這些單詞都是編號的,並且也按「名詞」,「形容詞」或「動詞」分類。

我想從這個列表中提取單詞,但排除數字和下面三個單詞'名詞','形容詞'和'動詞'。

我知道我需要使用脫字符,但似乎無法使其工作。

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) 
+0

「我知道我需要使用脫字符。」因爲你已經閱讀是一個邏輯「不」,對嗎?但它只是否定*字符類*。你讓它檢查「不是一個n,不是一個o,不是一個u,而不是一個管道」等等 - 但只有這些字符中的一個。它不適用於'單詞'。 – 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

我建議你使用negative look-ahead,這可能給這個正則表達式:

[^a-z](?!noun|adjective|verb)([a-z]+) 
相關問題