php - 如何去除转推的开头?

标签 php regex

每当转发推文时,转发的推文通常具有相同的格式:

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/

相关文章:

php - 提交表单后显示错误信息

python - 在 Python 中对正则表达式执行 WebDriverWait() 或类似检查

javascript - 用空格分割字符串,但不是换行符中的空格,并保留换行符

python - 从字符串中获取 Twitter 用户名的简单正则表达式

PHP函数作用域

php - 删除字符串的最后一个字符,如果它是 $variable

php - 数据库连接中的 OOP php 错误

objective-c - 正则表达式仅在特定字符串之后匹配

java - 在Java中使用正则表达式解析字符串行

php - 如何对所有查询启用自动mysql真正转义?