在数据库中有很多推文,我想用[RT]替换“RT @username:...其余推文”中的RT,但显然只有当“RT”位于数据库的开头时才会鸣叫。 (函数应该不区分大小写)
所以:输入就是例如
RT @username I'm having one jolly good time!!
RT @username RT @username this is fun
I am not using RT as a label - I use my own "retweet" label :P
rt @name here rt is lowercase
输出:
[RT] @username I'm having one jolly good time!!
[RT] @username RT @username this is fun
I am not using RT as a label - I use my own "retweet" label :P (no changes)
[RT] @name here rt is lowercase
这是正则表达式还是常规php的工作?任何提示将不胜感激!
答案 0 :(得分:2)
我用正则表达式做到这一点:
$result = preg_replace("/^RT/uim", "[RT]", $searchText);
如果输入字符串不是多行,则可以删除m
。
答案 1 :(得分:1)
这绝对是正则表达式能够做的工作。
/^RT\s*@[a-zA-Z0-9_]{1,15}/i
此模式与“RT”标记匹配,无论如何灵敏度,还会查找以下@twitter_username
。这是我用来匹配推特用户名的参考:http://kagan.mactane.org/blog/2009/09/22/what-characters-are-allowed-in-twitter-usernames/
答案 2 :(得分:0)
不需要PHP。直接在mySQL中一步完成。
UPDATE
tweet_table
SET
tweet_text = '[RT] ' + SUBSTRING(tweet_text, 4)
WHERE
SUBSTRING(tweet_text, 1, 3) = 'RT '