有没有办法使用re.findall
或另一个正则表达式来计算指定顺序中的单词出现次数,由任意数量的单词分隔?Python正则表达式查找单词与其他词分开
这里是一个“强力”的实施:
def search_query(query, page):
count=i=0
for word in page.split():
if word == query[i]: i+=1
if i==len(query):
count+=1
break
print count
search_query(['hello','kilojoules'],'hello my good friend kilojoules')
1
例如,当查询hello kilojoules
,我想认识hello my good friend kilojoules
为我的查询的实例,但kilojoules is my good friend
不被计算在内。
这是我的一个令人满意的正则表达式:re.findall('hello\s\Skilojoules','hello my friend kilojoules')
。这不起作用。我认为这会起作用,因为我对这个说法的理解是“找到由空格或空格分隔的hello
和kilojoules
的所有实例”。
也许'(?s)\ bhello \ b。*?\ bkilojoules \ b'?请注意'\ s \ S'只是一个空格,后面跟着一个非空格。 'hello \ s \ Skilojoules'可以匹配'hello bkilojoules',但不匹配'hello kilojoules'。 –
这里一般嘟about关于使用[原始字符串](https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals),除非你喜欢键入任何原因的反斜杠按钮, – NightShadeQueen
@stribizhev're.findall('(?s)\ bhello \ b。*?\ bkilojoules \ b','hello my amigo kilojoules')'nothing nothing – kilojoules