使用Python正则表达式刮取多个单词

使用Python正则表达式刮取多个单词,python,regex,Python,Regex,我试图通过创建一个python脚本并使用正则表达式来解析单词。如何标记我试图解析的单词。我对这一点很陌生,正在努力学习,这一点接近吗 import re data = open('data.txt') for line in data: if re.split((r'\s*', 'hack steal exploit compromise'), line): print line 如果运行代码,您将看到将错误的参数传递给: 上面的代码使用re.search(和re.

我试图通过创建一个python脚本并使用正则表达式来解析单词。如何标记我试图解析的单词。我对这一点很陌生,正在努力学习,这一点接近吗

import re

data = open('data.txt')

for line in data:
    if re.split((r'\s*', 'hack steal exploit compromise'), line):
        print line

如果运行代码,您将看到将错误的参数传递给:

上面的代码使用
re.search
(和
re.match
),如果行中包含任何单词“hack”、“steal”、“exploit”或“convent”,则返回a;如果行中不包含任何这些单词,则返回
None

然后你可以得到匹配的四个单词中的一个

上面的脚本将打印如下内容:

hack        # data.txt: "blah blah blah hack"
compromise  # data.txt: "compromise blah blah"
exploit     # data.txt: "blah exploit blah"

显示出一些理想的输出。并尝试使用re.split来注意代码中的错误。请包括data.txt的外观以及脚本的预期输出。还有,“标记单词”是什么意思?data.txt文件是一个包含一堆随机单词、短语和数字的文件。我试图解析出以下几个词:黑客、偷窃、利用、妥协。通过标记单词,我的意思是“如何编写脚本,以便在输出中只显示这些单词”。抱歉,如果使用了错误的措辞。
import re

data = open('data.txt')

for line in data:
    matches = re.search('(hack|steal|exploit|compromise)', line)
    if matches:
        print matches.group(1)  # get the 1st parenthesized group
hack        # data.txt: "blah blah blah hack"
compromise  # data.txt: "compromise blah blah"
exploit     # data.txt: "blah exploit blah"