使用Regex在Python中查找值

时间:2013-11-25 01:28:58

标签: python regex twitter

我使用json从网上读过twitter数据,所以它是字典形式。我必须使用Python找到TweetID以300或700结尾的推文。我知道我必须使用正则表达式,但我不熟悉正则表达式。有人可以帮忙吗?

import re
with open("tweet37.txt", "w") as o:
    for tweet in tweets:
        tweet_id = tweet['id']
        if tweet_id == re.compile(r'd*700' or 'd*300'):
            print >> o, str(tweet['id'])

这不会给出任何错误,但不会匹配任何ID。输出文件为空。

这就是ID的样子。它们在tweet ['id']

中的推文字典中
400051062968557600
400051063002116100
400051062985330700

2 个答案:

答案 0 :(得分:1)

两件事:

  1. 你拼错了“编译”。
  2. 您的正则表达式模式无效。
  3. 这就是你的正则表达式应该是这样的:

    if re.search('(?:300|700)$', tweet_id):
    

    (?:300|700)匹配字符串末尾的300700$匹配。

答案 1 :(得分:1)

str方法也可以。

with open("tweet37.txt", "w") as o:
    for tweet in tweets:
        tweet_id = tweet['id']
        if tweet_id.endswith('700') or tweet_id.endswith('300'):
            print >> o, str(tweet['id'])