匹配和删除字符串中的Twitter标签 [英] Matching and removing twitter hashtags in a string

查看:15
本文介绍了匹配和删除字符串中的Twitter标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

仅当hashtag位于字符串末尾以外的任何位置时,我才需要从hashtag中删除#字符。示例:

这个月我要去#迪士尼!#wdw

这个月我要去#迪斯尼。#wdw#奥兰多

我这个月要去#迪士尼#wdw#奥兰多

需要转换为:

我这个月要去迪士尼!

这个月我要去迪士尼。

我这个月要去迪士尼

此代码将删除所有#字符:

function remove_hashtags($string){
    $result = preg_replace('/#([w-]+)/i', '$1', $string);
    return $result;
}

.但在此之前,需要删除字符串末尾的hashtag(或hashtag组)。

推荐答案

这个怎么样?

function remove_hashtags($string){
    return str_replace('#', '', 
        preg_replace('/(?:#[w-]+s*)+$/', '', $string));
}
这里,我假设您只需要删除所有‘#’字符-而不仅仅是后面跟"标签标识符候选"(=匹配[w-]+模式)的字符。

如果这是您的任务,则应相应调整代码:

function remove_hashtags($string){
    return preg_replace('/#(?=[w-]+)/', '', 
        preg_replace('/(?:#[w-]+s*)+$/', '', $string));
}

这里我已将捕获组替换为Look Ahead。另外,/i修饰符在这两种情况下都不需要:w特殊字符同时覆盖a-zA-Z范围。

这篇关于匹配和删除字符串中的Twitter标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆