【问题标题】:PHP Regex tweet FilterPHP 正则表达式推文过滤器
【发布时间】:2014-04-08 23:48:53
【问题描述】:

我有一个问题。 我正在使用 Rstudio、Postgreql、PHP 抓取 Twitter 个人资料

我正在尝试从 Twitter 个人资料中过滤推文。

我将 php 与 postgresql 一起使用。我已经使用 SQL Query 将推文放在我网站上的表中。我想使用正则表达式来过滤推文。我不想在我的网站上显示来自 twitter 个人资料的所有推文,只是一些,比如包含#Vertraging 的推文。现在我在我的网站上看到了所有的推文。

如何排除所有不包含#vertraging 的推文?

在我的网站上查看我的表格的屏幕截图

http://prntscr.com/384y5m

【问题讨论】:

  • if (strpos($tweet, '#vertraging') === FALSE) { ... } 怎么样?

标签: php sql regex postgresql filter


【解决方案1】:

您可以采用两种方式。 或者在将它们发送到数据库之前将它们过滤掉。在这种情况下,您可以使用:

if (preg_match('/\#vertraging/i', $tweet)
{
    //Insert in DB
}

如果您想插入所有这些,但只从数据库中选择带有#vertraging 的那些,您可以在查询中使用这个WHERE 子句

WHERE `tweetsText' LIKE '%#vertraging%'

【讨论】:

  • 我同意,但用户专门要求提供正则表达式
  • 哎呀,够公平的。错过了。
【解决方案2】:

如果您使用的是 Postgresql,则可以忽略 Regex,而直接使用 like。例如:

SELECT * FROM `tweets_table` WHERE `tweet_content` LIKE '%#Vertraging%'

这应该和正则表达式一样高效,甚至可能更多。希望有帮助!如果您担心大写/小写,您可以做两种不同的事情:

SELECT * FROM `tweets_table` WHERE LOWER(`tweet_content`) LIKE '%#vertraging%'

或者您可以使用similar to。但是,我只会使用 lower 替代方案。

SELECT * FROM `tweets_table` WHERE `tweet_content` SIMILAR TO '%#(Vertraging|vertraging)%'

希望对您有所帮助!

【讨论】:

  • 嘿,非常感谢,但我把代码放在哪里?在 Postgresql 或 .php 文件中?看截图prntscr.com/38573mprntscr.com/38579m
  • 您可以将其添加到您的 .php 文件中。您可以发布用于访问数据的代码示例吗?也许我可以帮你整合它。
猜你喜欢
  • 2014-05-21
  • 1970-01-01
  • 2011-07-25
  • 2011-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-18
相关资源
最近更新 更多