Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在已知字符串之前查找任意长度的字符串_Python_String_Parsing - Fatal编程技术网

Python 在已知字符串之前查找任意长度的字符串

Python 在已知字符串之前查找任意长度的字符串,python,string,parsing,Python,String,Parsing,只要说我有一个字符串,比如: 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/'

只要说我有一个字符串,比如:

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/',string),然后反向工作,但我不能任意设置。单词前面总是有一个空格,这可能会有所帮助

编辑:删除列表中的错误。

尝试以下操作:

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']
试试这个:

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']
向前看

>>> 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']
向前看

>>> 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']

巴黎是如何成为你答案的一部分的,它不是在前面,而是在前面。巴黎是如何成为你答案的一部分的,它不是在前面,而是在前面。它几乎和我写的一模一样,但最好是在前面使用
\s
。谢谢。但对于另一个领域,我得到了:[u'Erwin',u'Schr\xf6dinger',u'Bose\u2013Einstein',u'Quantizing',u'Erwin',u'Schr\xf6dinger',u'Einstein',u'Einstein',u'Schr\xf6dinger',u'Einstein',u'Einstein'],当我在上面做str时:对于列表中的项目:打印str(项目)。UnicodeEncodeError:“ascii”编解码器无法对位置7中的字符u'\u2013'进行编码:序号不在范围(128)内。我知道这是一个很长的破折号,但有没有办法让它出现在终端上?@Griff这应该是一个不同的问题,但这里是:):
print str(item.encode('utf-8'))
我向你致敬,先生!谢谢。+1几乎和我写的一模一样,但是最好使用
\s
而不是
[^\s]
。谢谢。但对于另一个领域,我得到了:[u'Erwin',u'Schr\xf6dinger',u'Bose\u2013Einstein',u'Quantizing',u'Erwin',u'Schr\xf6dinger',u'Einstein',u'Einstein',u'Schr\xf6dinger',u'Einstein',u'Einstein'],当我在上面做str时:对于列表中的项目:打印str(项目)。UnicodeEncodeError:“ascii”编解码器无法对位置7中的字符u'\u2013'进行编码:序号不在范围(128)内。我知道这是一个很长的破折号,但有没有办法让它出现在终端上?@Griff这应该是一个不同的问题,但这里是:):
print str(item.encode('utf-8'))
我向你致敬,先生!多谢各位。