尝试在 python 中最后一次出现特殊标记后检索元素

Trying to retrieve element after the last occurence of a special token in python

我在每个句子的末尾插入标记,但在 re 不是那个标记的情况下,我想做的是检索最后一个特殊标记之后的句子(如果存在)。

text = ["j’imagine une fourchette entre 40 et 65€ , prix auquel je l’achèterai sans doute.<stop> Au vu de la double fonction (2x25€) , de la technicité et de l’ingéniosité je pense que cela serait un prix très correct .<stop> A voir les matériaux utilisés pour un prix plus précis", "ma seule interrogation est « où seront commercialisées les bobines de fils"]


if "<stop>" in text:
    print(text)
    x =re.search("/[^<stop>]*$/",text)
    print(x)
    sentences = text.split("<stop>") 
else:
    print(text)
    sentences = text 
        
sentences = sentences[:-1]
sentences = [s.strip() for s in sentences]

我试过了,但没有用。给我None.

您可以删除 re.seach 部分并将分割的最后部分追加到数组中。但请注意,您必须循环初始列表。

您可以在列表理解的末尾添加 if s 以从列表中删除空条目。

text = [
    "j’imagine une fourchette entre 40 et 65€ , prix auquel je l’achèterai sans doute.<stop> Au vu de la double fonction (2x25€) , de la technicité et de l’ingéniosité je pense que cela serait un prix très correct .<stop> A voir les matériaux utilisés pour un prix plus précis",
    "ma seule interrogation est « où seront commercialisées les bobines de fils", "<stop>"]

sentences = []
for s in text:
    sentences.append(s.split("<stop>")[-1])

sentences = [s.strip() for s in sentences if s]
print(sentences)

输出

['A voir les matériaux utilisés pour un prix plus précis',
'ma seule interrogation est « où seront commercialisées les bobines de fils']