每当转推Tweet时,转发的推文通常都采用相同的格式:
RT @UserName: Original Tweet, sometimes with alterations
我正在寻找一种方法来拆分“RT @UserName:”,以便只保留原始推文。我认为一个正则表达式检查推文开头的“RT”,然后检查直到@UserName之后的第一个空格应该做的伎俩。我现在有
preg_replace("/^RT/ui", "", $tweet);
但这只会删除RT。如何扩展此正则表达式?
第二个问题:或者,也可能在推文的开头检查“RT”,然后只在第二个空格之后保存字符串的一部分(第一个在RT和@UserName之间,所以在@UserName之后的第一个表示截止点),但是如果出于某种原因在RT和@UserName之间存在两个空格,那么我会遇到问题。
答案 0 :(得分:4)
preg_replace("/^RT [^:]+:/ui", "", $tweet);
这将删除冒号前的所有内容。
修改强>
显然有些转推没有冒号:
preg_replace("/^RT +@[^ :]+:? */ui", "", $tweet);
这将删除“RT”,用户名,可选冒号以及消息前的空格。