说我有一个字符串如:
Lecture/NNP/B-NP/O delivered/VBD/B-VP/O at/IN/B-PP/B-PNP the/DT/B-NP/I-PNP UNESCO/NNP/I-NP/I-PNP House/NNP/I-NP/I-PNP in/IN/B-PP/B-PNP Paris/NNP-LOC/B-NP/I-PNP
我想拉出“/ NNP /”之前出现的每个单词。这意味着我的输出是
讲座,联合国教科文组织,众议院
我试过了:
打印re.findall(r'/ NNP /',字符串)然后向后工作,但我不能让它任意。总是有一个空白区域可能会有所帮助。
编辑:删除了列表中的错误。
答案 0 :(得分:4)
试试这个:
s = 'Lecture/NNP/B-NP/O delivered/VBD/B-VP/O at/IN/B-PP/B-PNP the/DT/B-NP/I-PNP UNESCO/NNP/I-NP/I-PNP House/NNP/I-NP/I-PNP in/IN/B-PP/B-PNP Paris/NNP-LOC/B-NP/I-PNP'
re.findall(r'(\S+)/NNP/', s)
=> ['Lecture', 'UNESCO', 'House']
答案 1 :(得分:2)
前瞻。
>>> re.findall('(?:\s|^)[^/]+(?=/NNP/)', 'Lecture/NNP/B-NP/O delivered/VBD/B-VP/O at/IN/B-PP/B-PNP the/DT/B-NP/I-PNP UNESCO/NNP/I-NP/I-PNP House/NNP/I-NP/I-PNP in/IN/B-PP/B-PNP Paris/NNP-LOC/B-NP/I-PNP')
['Lecture', 'UNESCO', 'House']