如何剥离转发的开始?

时间:2012-02-05 23:26:43

标签: php regex

每当转推Tweet时,转发的推文通常都采用相同的格式:

RT @UserName: Original Tweet, sometimes with alterations

我正在寻找一种方法来拆分“RT @UserName:”,以便只保留原始推文。我认为一个正则表达式检查推文开头的“RT”,然后检查直到@UserName之后的第一个空格应该做的伎俩。我现在有

preg_replace("/^RT/ui", "", $tweet);

但这只会删除RT。如何扩展此正则表达式?

第二个问题:或者,也可能在推文的开头检查“RT”,然后只在第二个空格之后保存字符串的一部分(第一个在RT和@UserName之间,所以在@UserName之后的第一个表示截止点),但是如果出于某种原因在RT和@UserName之间存在两个空格,那么我会遇到问题。

1 个答案:

答案 0 :(得分:4)

preg_replace("/^RT [^:]+:/ui", "", $tweet);

这将删除冒号前的所有内容。

修改

显然有些转推没有冒号:

preg_replace("/^RT +@[^ :]+:? */ui", "", $tweet);

这将删除“RT”,用户名,可选冒号以及消息前的空格。