小编Adr*_*ian的帖子

在Python中使用正则表达式搜索字符串

当我尝试使用正则表达式在其他字符串中查找字符串时,它不能按预期工作.这是一个例子:

import re
message = 'I really like beer, but my favourite beer is German beer.'
keywords = ['beer', 'german beer', 'german']

regex = re.compile("|".join(keywords))
regex.findall(message.lower())
Run Code Online (Sandbox Code Playgroud)

结果:

['beer', 'beer', 'german beer']
Run Code Online (Sandbox Code Playgroud)

但预期的结果将是:

['beer', 'beer', 'german beer', 'german']
Run Code Online (Sandbox Code Playgroud)

另一种方法可能是:

results = []
for k in keywords:
    regex = re.compile(k)
    for r in regex.findall(message.lower()):
        results.append(r)

['beer', 'beer', 'beer', 'german beer', 'german']
Run Code Online (Sandbox Code Playgroud)

它的工作方式与我想的一样,但我认为这不是最好的方法.有人能帮助我吗?

python regex string find

7
推荐指数
2
解决办法
1456
查看次数

标签 统计

find ×1

python ×1

regex ×1

string ×1