Php 如何剥离转发的开始?
每当转发推文时,转发推文通常具有相同的格式:Php 如何剥离转发的开始?,php,regex,Php,Regex,每当转发推文时,转发推文通常具有相同的格式: RT @UserName: Original Tweet, sometimes with alterations 我正在寻找一种方法来分离“RT@UserName:”,这样就只剩下原来的tweet了。我认为正则表达式应该检查tweet开头的“RT”,然后检查@UserName后面的第一个空格。我现在有 preg_replace("/^RT/ui", "", $tweet); 但这只会删除RT。如何扩展此正则表达式 第二个问题:或者,也可以在twe
RT @UserName: Original Tweet, sometimes with alterations
我正在寻找一种方法来分离“RT@UserName:”,这样就只剩下原来的tweet了。我认为正则表达式应该检查tweet开头的“RT”,然后检查@UserName后面的第一个空格。我现在有
preg_replace("/^RT/ui", "", $tweet);
但这只会删除RT。如何扩展此正则表达式
第二个问题:或者,也可以在tweet开头检查“RT”,然后只保存第二个空格后的字符串部分(第一个空格在RT和@UserName之间,因此@UserName后的第一个空格表示截止点),但是,如果出于某种原因,例如RT和@UserName之间有两个空格,我就会遇到问题
preg_replace("/^RT [^:]+:/ui", "", $tweet);
这将删除所有内容,直到结肠
编辑:
显然有些转发没有冒号:
preg_replace("/^RT +@[^ :]+:? */ui", "", $tweet);
这将删除“RT”、用户名、可选冒号以及消息前的空格。您可能还希望在第一个冒号后包含空格。
preg\u replace(“/^RT[^:::+:+/ui”,”,$tweet)
将删除第一个冒号后的所有初始空格。是的,但有时没有冒号:“RT@UserName这是一条tweet”,因此这不起作用。这就是为什么我认为最好在用户名后寻找第一个空格代码>:)如果我是正确的,这应该适用于您提到的所有情况。@BrunoSilva:+1,但是编辑您的答案,而不是添加注释。