Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想得到所有出现的
@某物
以任何非字母数字字符或空格为界。
我试过了
[^A-Za-z0-9\s] @(\S )[^A-Za-z0-9]
但它一直在单词后包含空格。
我会很高兴得到任何帮助,谢谢。
编辑:所以问题很清楚,我想从中获得匹配
行开始@word1 某事@word2,@word3
所有'@word1'、'@word2'、'@word3'
这是你想要的吗?
@\w+
演示
preg_match_all('#(@\w+)#', 'Line start @word1 something @word2,@word3', $matches); print_r($matches[1]);
取自 Madbreak 评论,要排除@前面的任何字符,请改用它
@
(?<!\w)@\w+(?=\b)
这个
preg_match_all('/[^@]*@(\S*)/', 'blabla @something1 blabla @something2 blabla', $matches); print_r($matches[1]);
印刷
Array ( [0] => something1 [1] => something2 )