我如何通过' @'从Twitter中标记的字符串中获取一系列用户名。使用正则表达式或类似的前缀?
例如:
输入:
hello @person my name is @joebloggs
输出(数组):
['person', 'joebloggs']
答案 0 :(得分:2)
这样做:
$regex = '~@\K\S+~';
preg_match_all($regex, $yourstring, $matches);
print_r($matches[0]);
查看 Regex Demo 中的匹配项。
<强>解释强>
@
匹配AT(但不会返回)\K
告诉引擎放弃与其返回的最终匹配项目匹配的内容\S+
匹配任何非空格字符答案 1 :(得分:2)
另一种解决方案
@[^\s]+
用法:
$string = 'hello @person my name is @joebloggs';
$pattern = '/@[^\s]+/';
preg_match_all($pattern, $string, $matches);
print_r($matches[0]);
输出:
Array
(
[0] => @person
[1] => @joebloggs
)
答案 2 :(得分:1)
使用它:
<?php
$re = "/(?<=@)[^\s]+/";
$str = "asdasd asda 232 @asdasd sd232 soi @other asdnasda asjdajh @asdasd";
preg_match_all($re, $str, $matches);
print_r($matches);
输出:
Array
(
[0] => Array
(
[0] => asdasd
[1] => other
[2] => asdasd
)
)