每当转发推文时,转发的推文通常具有相同的格式:
RT @UserName: Original Tweet, sometimes with alterations
我正在寻找一种方法来拆分“RT @UserName:”,以便仅保留原始推文。我认为正则表达式检查推文开头的“RT”,然后检查直到 @UserName 之后的第一个空格应该可以解决问题。我现在有
preg_replace("/^RT/ui", "", $tweet);
但这只会删除 RT。我如何扩展这个正则表达式?
第二个问题:或者,也可能在推文的开头检查“RT”,然后只保存第二个空格之后的字符串部分(第一个在 RT 和@UserName 之间,所以 @UserName 之后的第一个表示截止点),但是如果出于某种原因在 RT 和 @UserName 之间有两个空格,我就会遇到问题,例如。
最佳答案
preg_replace("/^RT [^:]+:/ui", "", $tweet);
这将删除冒号之前的所有内容。
编辑:
显然有些转发没有冒号:
preg_replace("/^RT +@[^ :]+:? */ui", "", $tweet);
这将删除“RT”、用户名、一个可选的冒号以及消息前的空格。
关于php - 如何去除转推的开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9154068/