停止正则表达式匹配单词中单词的一部分

我是帕顿
if(preg_match(/(www|co.uk|uk.com|com|net|edu|org|org.uk|info|me|biz|co|io)/, $hostParts)) {

    //unset this element from the array;

}

我正在使用正则表达式删除常见的域扩展名。我的问题是我的表达式在www.cnet.com的示例中也与cnet中的网络匹配。我该如何停止与单词部分匹配的域名,例如www.cnet.com等,为此,我只想删除www和com部分。谢谢。

阿什拉夫·桑霍里(Ashraf Samhouri)

通常,\b可以满足您的需求。用两个\bs表示您的单词but check the updates for your specific case

if(preg_match('/\b(www|co.uk|uk.com|com|net|edu|org|org.uk|info|me|biz|co|io)\b/si', $hostParts)) {

    //unset this element from the array;

}

更新

这是一个更新,它特定于URL,我没有考虑到这一点:

if(preg_match('/(\bwww\.|(\.(co\.uk|uk\.com|com|net|edu|org|org.uk|info|me|biz|co|io)\b))/si', $hostParts)) {

    //unset this element from the array;

}

更新2

这是一个示例,请注意,我已经将“ org”与“ org.uk”交换了,因为如果抓住了第一个,则第二个就不会了:

<?php

  $str = 'www.cnet.org.uk';
  $str = preg_replace('/(\bwww\.|(\.(co\.uk|uk\.com|com|net|edu|org.uk|org|info|me|biz|co|io)\b))/si', '', $str);
  echo $str;

?>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

正则表达式,用通配符将单词的一部分匹配后

否定正则表达式的一部分(制表和单词)?

正则表达式选择单词的一部分

PCRE 正则表达式:排除单词的最后一部分

什么正则表达式可以匹配一个单词,但前提是该单词不是点分隔的单词链的一部分?

Python正则表达式:如果字母不是列表中单词的一部分,则替换字母

正则表达式匹配行的一部分,对行的其余部分进行负查找(不匹配单词)

正则表达式在一个单词后得到字符串的一部分

正则表达式如果包含特定单词则跳过字符串的一部分

正则表达式查找单词,但如果它是较大短语的一部分,则不查找

正则表达式匹配模式但只替换 R 中匹配的一部分

正则表达式选择匹配项的一部分

仅使用正则表达式匹配网址的一部分

正则表达式匹配字符串的一部分

正则表达式不匹配字符串的一部分

提取正则表达式匹配项的一部分

用sed替换匹配的正则表达式的一部分

使用正则表达式获取匹配值的一部分

替换前处理正则表达式匹配的一部分

正则表达式匹配 URL 的一部分

正则表达式匹配路径的一部分

正则表达式匹配字符串的最后一部分

正则表达式匹配域名的第一部分

用正则表达式匹配文件路径的一部分

使用正则表达式匹配字符串的一部分

正则表达式:匹配模式,更改其中的一部分

正则表达式 - 可以替换匹配组的一部分吗?

正则表达式以检测单词是否是字符串的一部分,而下一个单词不大写

如何获取与SQL Server中的正则表达式匹配的字符串的一部分