如何编写不匹配指定单词的正则表达式?

qlz37238 2013-01-30 11:27:08
不如说一个字符串里面有"abc def ghi abcdef" 这里指定不匹配abc这个单词其他的"def ghi abcdef"都可以匹配我写的/\b(?!abc)\w+\b/。。只不过 这个有个问题的是以abc开头的单词都不会匹配。。这个正则表达式应该怎么写呢?
...全文
821 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
夏之冰雪 2013-01-31
  • 打赏
  • 举报
回复
引用 1 楼 jordan102 的回复:
echo preg_replace('/\babc\b/','',"abc def ghi abcdef");
不用那么麻烦的~
<?php 
$str = 'abc def ghi abcdef';
preg_match_all('/\b(?!abc\b)\w+\b/', $str, $matches);
var_dump($matches);
?>
输出结果: array(1) { [0]=> array(3) { [0]=> string(3) "def" [1]=> string(3) "ghi" [2]=> string(6) "abcdef" } }
ImN1 2013-01-31
  • 打赏
  • 举报
回复
既然是匹配def ghi abcdef 那就把空格也拉进(?!)不行么? \b不要滥用
一起混吧 2013-01-31
  • 打赏
  • 举报
回复
多写一步,你再以空格分割就是了。
qlz37238 2013-01-31
  • 打赏
  • 举报
回复
引用 1 楼 jordan102 的回复:
echo preg_replace('/\babc\b/','',"abc def ghi abcdef");
这样真实替换把单词去掉。我使用的是preg_match_all,想把匹配的内容放到数组里面。。
一起混吧 2013-01-30
  • 打赏
  • 举报
回复
echo preg_replace('/\babc\b/','',"abc def ghi abcdef");

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧