正则怎么匹配两个@之间的内容?

  1. 标题文字

$content = "@sdfs 任务需求@广泛大概 评估需求@士大夫 货物审核";
preg_match_all("/@([\^\\r\\n]*?)@$/i", $content.'@', $atContent); //提取内容

为什么上面的正则匹配的是这个样子的

Array ( 
     [0] => Array ( [0] => @sdfs 任务需求@广泛大概 评估需求@士大夫 货物审核@ ) 
     [1] => Array ( [0] => sdfs 任务需求@广泛大概 评估需求@士大夫 货物审核 ) 
)

我想匹配单独的,就是@一个人为一条数据
类似这样的

Array ( 
   [0] =>sdfs 任务需求,
   [1] =>广泛大概 评估需求,
   [2] =>士大夫 货物审核,
);

因为要发送短信提醒,发送的信息就是@后面的内容,所以要单独提取出来

阅读 3.5k
2 个回答

你这个不需要正则, 用explode就可以了.

array_filter(explode('@', $content));
"@sdfs 任务需求@广泛大概 评估需求@士大夫 货物审核".match(/(?!@)[^@]+/g)

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题