作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有一个字符串列表,我想在其中过滤包含关键字的字符串。
我想做这样的事情:
fruit = re.compile('apple', 'banana', 'peach', 'plum', 'pinepple', 'kiwi']
所以我可以使用 re.search(fruit, list_of_strings) 仅获取包含水果的字符串,但我不确定如何将列表与 re.compile 一起使用。有什么建议么? (我不打算使用 re.compile,但我认为正则表达式会是一个很好的方法。)
最佳答案
您需要将水果列表转换为字符串 apple|banana|peach|plum|pineapple|kiwi
以便它是有效的正则表达式,以下应该为您执行此操作:
fruit_list = ['apple', 'banana', 'peach', 'plum', 'pineapple', 'kiwi']
fruit = re.compile('|'.join(fruit_list))
edit:正如 ridgerunner 在评论中指出的那样,您可能希望为正则表达式添加单词边界,否则正则表达式将匹配像 plump
这样的单词,因为它们有一个水果作为子字符串。
fruit = re.compile(r'\b(?:%s)\b' % '|'.join(fruit_list))
关于python - 如何在 python 中使用列表执行 re.compile(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6750240/
我是一名优秀的程序员,十分优秀!