匹配列表中的任何一个项目

时间:2017-09-08 10:36:45

标签: regex python-3.x praw

对于reddit机器人,我想找到符合某个正则表达式和列表中任何单词的注释。我明白了:

wordlist = ["word1", "word2", "word3")
for comment in reddit.subreddit('test').comments(limit = None):
    match = re.findall(r"(?i).*\bTest\b\s" + ANYITEMOFWORDLIST, comment.body)

我想要ANYITEMOFWORDLIST,以及任何wordlist项目。我在那里用什么?这可能很容易,但我不是一个真正的程序员。如果之前有人问这个问题,我很抱歉,但我找不到任何东西

1 个答案:

答案 0 :(得分:0)

您通常会使用替换[a, b, c]匹配单词(?:a|b|c)列表中的任何字词。如果你的单词只包含单词字符(a到z,0到9和_),那么使用单词边界(\b)通常也会更好:

wordlist = ["word1", "word2", "word3"]
for comment in reddit.subreddit('test').comments(limit = None):
    match = re.findall(r"(?i).*\bTest\b\s\b(?:" + "|".join(wordlist) + r")\b", comment.body)