我试图通过创建python脚本并使用正则表达式来解析单词。如何标记我试图解析的单词。我对此非常陌生,并试图学习,这是否接近?
import re
data = open('data.txt')
for line in data:
if re.split((r'\s*', 'hack steal exploit compromise'), line):
print line
答案 0 :(得分:2)
如果您运行代码,则会发现您将错误的参数传递给re.split
:
Traceback (most recent call last):
File "test.py", line 6, in <module>
if re.split((r'\s*', 'hack steal exploit compromise'), line):
...
raise TypeError("first argument must be string or compiled pattern")
TypeError: first argument must be string or compiled pattern
我不知道你在re.split
尝试做什么
但您可以使用re.search
或re.match
来实现解析器:
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
上面的代码使用re.search
(和re.match
),如果该行包含任何单词&#34; hack&#34;,&#34;则返回MatchObject
。窃取&#34;,&#34;利用&#34;或&#34;妥协&#34;或None
如果该行不包含任何这些词。
然后你可以得到captured group,这将是匹配的4个单词之一。
上面的脚本将打印如下内容:
hack # data.txt: "blah blah blah hack"
compromise # data.txt: "compromise blah blah"
exploit # data.txt: "blah exploit blah"