我试图建立一个集合,其中包含用户从字符串中查询的所有单词
# Step 1: Read the string
instr = 'Lorem ipsum dolor sit amet, unde curabitur nonummy nonummy, cras dui eget, accumsan placerat nibh cumque vel augue, vitae laoreet at. Urna feugiat. Ut ante neque duis neque metus lectus. Neque rutrum tortor adipiscing omnis neque urna, diam vivamus. Pulvinar quis id, porta class felis enim vulputate, tempus arcu, sit porta. Nec praesent orci in, orci id duis purus ultrices, non sit vel. Cras ipsum nibh nulla suspendisse neque, mi dis, vestibulum a ipsum, morbi a curabitur porttitor sodales sit nullam, mus tristique feugiat vel per orci. Lacus elit molestie quam, ac nibh nulla in faucibus quis volutpat. Congue cum massa. Convallis in ultricies eget velit, erat elit eleifend.'
text_lowercase = instr.lower()
# Turn them in to set. Easy enough
all_words = set(text_lowercase)
# Step 2: Compare with the user's words:
all_words & user_words
# And those are the user's words that exist in the text.
假设用户查询像lor*
或con*
这样的术语。
我希望能够将以lor
或con
开头的每个单词添加到我的set
。通过快速浏览,我发现有Congue
、Convallis
这样的词。所以这2个应该加到集合中
你不需要正则表达式,你可以使用列表理解和
str.startswith()
:或者,由于前缀的长度总是相同的,所以需要进行一个简单的
in
检查:您可以将
*
替换为\w*
,并使用con*
这样的模式本身作为正则表达式来搜索您还可以将
word.replace
的结果括在\b...\b
或^...$
(在分句中匹配单个单词时)中,以说明单词边界相关问题 更多 >
编程相关推荐