1

次のような文字列があるとだけ言ってください。

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/」の前に出現するすべての単語を抜き出したい。これは、私の出力が

講演会、ユネスコ、家

私は試した:

print re.findall(r'/NNP/',string) その後、逆方向に作業しますが、任意にすることはできません。単語の先頭には常に空白があり、これが役立つ場合があります。

編集:リストのエラーを削除しました。

4

2 に答える 2

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']
于 2013-06-16T05:22:52.037 に答える
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']
于 2013-06-16T05:22:59.383 に答える