这是我的txt文件中一些行(解决方案,pos和光泽)的副本:
solution: (كَتَبَ kataba) [katab-u_1]
pos: katab/VERB_PERFECT+a/PVSUFF_SUBJ:3MS
gloss: ___ + write + he/it <verb>
我想在第一行的方括号内返回“katab”这个词,并删除所有人员和行,并为每件事编号。我正在研究python 2.7
我试着写这段代码:
pattern = re.compile("'(?P[^']+)':\s*(?P<root>[^,]*)\d+")
答案 0 :(得分:0)
每当你想到“我需要匹配一个模式”时,你应该认为“正则表达式”是一个很好的起点。见doco。由于输入文件是unicode,因此它有点棘手。
import re
import codecs
with codecs.open("test.unicode.txt","rb", "utf-8") as f:
words = []
for line in f.readlines():
matches = re.match(b"solution:.+\[(?P<word>\w+).*\]", line, flags=re.U)
if matches:
words.append(matches.groups()[0])
print(words)
输出:
[u'katab']