首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从不以特定单词开头的字符串中删除单词(http|https|www|.com|.net)

从不以特定单词开头的字符串中删除单词(http|https|www|.com|.net)
EN

Stack Overflow用户
提问于 2015-04-27 01:45:54
回答 3查看 822关注 0票数 0

我有一个字符串,里面有一些文本和一些URL。我的目标是从字符串中删除以下内容:

$removeThis =数组(‘http://','https://','www.','.com','.net');

,但只有当要删除的单词没有以开头:http://good.comhttp://www.good.comhttps://good.comhttps://www.good.com时。

换句话说,我想从字符串中删除http|s|www.|.com|.net部件(但前提是它们不属于good.com域)。

投入:

代码语言:javascript
复制
$string='Hello world, this is spamming: www.spam.com, spam.net, https://spam.com, https://spam.com/tester. And this is not spam so do not touch it: http://www.good.com/okay, http://good.com, and also https://good.com/well';

其结果应是:

代码语言:javascript
复制
Hello world, this is spamming: spam, spam, spam, spam/tester. And this is not spam so do not touch it: http://www.good.com/okay, http://good.com, and also https://good.com/well

我认为这里需要preg_replace ..。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-04-27 02:30:37

试着在下面:

代码语言:javascript
复制
  $preg = '/(?:(http|https):\/\/)?(?:www\.)?\w+\.(com|net)/i';

$str = preg_replace_callback($preg, function($matches) {
    $removeThis = array('/http:\/\//i', 'https://', 'www.', '.com', '.net');
    if (preg_match('/(http|https):\/\/(www\.)?good\.(com|net)/i', $matches[0])) return $matches[0];
    return preg_replace('/((http|https):\/\/|www\.|\.com|\.net)/i', '', $matches[0]);
}, $string);
票数 1
EN

Stack Overflow用户

发布于 2015-04-27 02:01:50

这可能对你有帮助:

代码语言:javascript
复制
$url = "www.good.net/tooooo.php";
$regex = array('/(https?:..)/','/^www\./','/(\.com.|\.net.|\.co.)+([^\s]+)/');
$url = preg_replace($regex, '', $url);
echo $url;
票数 0
EN

Stack Overflow用户

发布于 2015-04-27 02:21:00

您应该使用非常强大的REGEX,这里的步骤非常简单:

  1. 使用preg_replace_callback匹配所有urls
  2. 在回调函数中,检测它是否属于已白化的域(preg_match或strrpos)
  3. 仍然在回调函数中:根据结果处理字符串并返回它。

urls的Regex:

代码语言:javascript
复制
#^(https?|ftp):\/\/(-\.)?([^\s\/?\.#]+\.?)+(\/[^\s]*)?$#
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29885882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档