[英]how to pass a function to re.findall() in python
我有一個要在大文本字符串中搜索的單詞列表。我定義了一個返回每個單獨單詞的 function,但我不知道如何將 function 傳遞給 re.findall()。 我想獲得包含單詞列表中任何單詞的任何句子。 有人可以幫忙:)這是我得到的:
strings = ['some large text', 'some large text'...]
ad = []
words = ['ascertained','deep','detected','disclosed','disinterred','espied','explored','exposed','famous','happened upon','identified','invented','learned','observed','perceived','presented','revealed','searched out','shown','sighted','spotted','unveiled']
def word():
for i in words:
t = word[i]
return t
for i in range(len(strings)):
ad += re.findall(r"([^.]*?word()[^.]*\.)",strings[i])
sep = ''
adc = sep.join(ad)
你想要這樣的東西:
strings = ['some large text', 'some large text', 'dont disclosed it']
words = ['ascertained','deep','detected','disclosed','disinterred','espied','explored','exposed','famous','happened upon','identified','invented','learned','observed','perceived','presented','revealed','searched out','shown','sighted','spotted','unveiled']
reg = re.compile("(?=(" + "|".join(map(re.escape, words)) + "))")
ad = [i for i in strings if len(re.findall(reg,i))]
ad = ', '.join(ad)
廣告:
'dont disclosed it'
strings = ['my name is D.', 'I am 18 years old', 'I love deep learning', 'detected something fishy']
ad = []
words = ['ascertained','deep','detected','disclosed','disinterred','espied','explored','exposed','famous','happened upon','identified','invented','learned','observed','perceived','presented','revealed','searched out','shown','sighted','spotted','unveiled']
for i in range(len(strings)):
ad += [strings[i] for word in words if len(re.findall(f"([^.]*?{word}[^.]*)", strings[i]))]
Output:
廣告:
['I love deep learning', 'detected something fishy']
for i in range(len(strings)):
ad += [re.findall(f"([^.]*?{word}[^.]*\.)", strings[i]) for word in words]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.