3

我想得到所有出现的

@某物

以任何非字母数字字符或空格为界。

我试过了

[^A-Za-z0-9\s] @(\S )[^A-Za-z0-9]

但它一直在单词后包含空格。

我会很高兴得到任何帮助,谢谢。

编辑:所以问题很清楚,我想从中获得匹配

行开始@word1 某事@word2,@word3

所有'@word1'、'@word2'、'@word3'

4

2 回答 2

1

这是你想要的吗?

@\w+

演示

preg_match_all('#(@\w+)#', 'Line start @word1 something @word2,@word3', $matches);
print_r($matches[1]);

取自 Madbreak 评论,要排除@前面的任何字符,请改用它

 (?<!\w)@\w+(?=\b)

演示

于 2013-01-23T19:40:46.820 回答
0

这个

preg_match_all('/[^@]*@(\S*)/', 'blabla @something1 blabla @something2 blabla', $matches);
print_r($matches[1]);

印刷

Array
(
    [0] => something1
    [1] => something2
)
于 2013-01-23T19:25:05.717 回答