我正在尝试编码脚本,该脚本将查找给定字符串中的单个单词或由多个单个单词组成的字符串。我发现this answer看起来非常需要,但我不明白它是如何工作的。在字符串中查找单个或多个单词
使用在上述回答中提供的代码,我有这样的:
import re
def findWholeWord(w):
return re.compile(r'\b({0})\b'.format(w), flags=re.IGNORECASE).search
st1 = 'those who seek shall find'
st2 = 'swordsmith'
print findWholeWord('seek')(st1) # -> <match object>
print findWholeWord('these')(st1) # -> None
print findWholeWord('THOSE')(st1) # -> <match object>
print findWholeWord('seek shall')(st1) # -> <match object>
print findWholeWord('word')(st2) # -> None
该函数返回像<_sre.SRE_Match object at 0x94393e0>
(这个词的时候(一个或多个)被发现)或None
(当他们不)并且我希望函数返回,而不是True
或False
,如果分别找到了单词(或多个)。 由于我不清楚这个函数是如何工作的,我不知道我该怎么做。
我从来没有见过一个函数被调用传递两个变量(?),即:findWholeWord(word)(string)
,这是干什么的?
第一:我没有downvote(我不明白用户谁downvote,并没有解释为什么,所以我upvoted你的答案)。你的第一个答案会起作用,但这有点不妥。第二个答案有效,但我仍然想知道双'()()'是如何工作的。你的第三个答案对我来说更加清晰,它的工作很好。谢谢! – Gabriel
@Gabriel我倒下了,因为它没有提供你的问题的答案,它只是一个代码块,没有任何解释 –