Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中检测段落中包含@符号的所有文本_Php_Arrays_Regex_Laravel 5.1 - Fatal编程技术网

如何在php中检测段落中包含@符号的所有文本

如何在php中检测段落中包含@符号的所有文本,php,arrays,regex,laravel-5.1,Php,Arrays,Regex,Laravel 5.1,在我当前的php项目中,我将在一个段落中发送一些带有@符号的特殊文本到后端。我需要检测所有带有@符号的单词,并将它们作为数组。我尝试使用下面的正则表达式,但它不起作用,有人能帮我解决这个问题吗 $text = "my text has some @signs and @names"; preg_match_all('/(?<!\w)@\w+/', $text, $matches); print_r($matches); $text=“我的文本有一些@符号和@名称”; 如果你的文章

在我当前的php项目中,我将在一个段落中发送一些带有@符号的特殊文本到后端。我需要检测所有带有@符号的单词,并将它们作为数组。我尝试使用下面的正则表达式,但它不起作用,有人能帮我解决这个问题吗

$text = "my text has some @signs and @names";    
preg_match_all('/(?<!\w)@\w+/', $text, $matches);
print_r($matches);
$text=“我的文本有一些@符号和@名称”;

如果你的文章很长,preg_match_all('/(?可能不是最好的解决方案,但这会起作用:

$marked = array();
foreach (explode(' ', $text) as $word) {
    if ($word[0] == '@') {
        $marked[] = $word;
    }   
}
将导致:

Array
(
    [0] => @signs
    [1] => @names
)

如果您的文本很长,可能不是最好的解决方案,但这将起作用:

$marked = array();
foreach (explode(' ', $text) as $word) {
    if ($word[0] == '@') {
        $marked[] = $word;
    }   
}
将导致:

Array
(
    [0] => @signs
    [1] => @names
)

您的代码似乎确实在工作:。如果这不是预期的输出,您必须说明缺少的内容。请提供一个可复制的示例以及预期的输出。当您询问正则表达式问题时,请提供一个输入和输出示例。没有它,我们无法测试我们的解决方案。您的代码似乎确实在工作:。如果这不是expected输出,您必须说明缺少的内容。提供一个可复制的示例以及预期输出。请在您提出正则表达式问题时,提供一个输入和输出示例。没有它,我们无法测试我们的解决方案。