Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.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_Regex - Fatal编程技术网

Php 在字符串中检测@提及的问题

Php 在字符串中检测@提及的问题,php,regex,Php,Regex,我有以下代码: $string = "Manual balls knit cardigan @120rb ORDER BB 28AFF6A6 atau 25AE5DB3 Phone 081298249949 atau 081310570229 Line indy2212 atau indy2281 FORMAT Nama Alamat Telp Kode barang"; if (preg_match('/(?<= )@([^@ ]+)/', $string

我有以下代码:

$string = "Manual balls knit cardigan @120rb

ORDER
BB 28AFF6A6 atau 25AE5DB3 
Phone 081298249949 atau 081310570229 
Line indy2212 atau indy2281 
FORMAT
Nama 
Alamat 
Telp 
Kode barang";

        if (preg_match('/(?<= )@([^@ ]+)/', $string, $matches)) {
            var_dump(count($matches));
            var_dump('first ' . $matches[0]);
            var_dump('second ' . $matches[1]);
        }
我的问题是为什么?为什么它与字符串匹配两次?我的正则表达式有什么问题?

将匹配项存储到作为第三个参数提供的数组中。在本例中,您的
preg\u match()
语句如下所示:

preg_match('/(?<= )@([^@ ]+)/', $string, $matches);
代码:

if(preg_match_all)('/(?将匹配项存储到作为第三个参数提供的数组中。在这种情况下,
preg_match()
语句如下所示:

preg_match('/(?<= )@([^@ ]+)/', $string, $matches);
代码:

if(preg_match_all)('/(?将匹配项存储到作为第三个参数提供的数组中。在这种情况下,
preg_match()
语句如下所示:

preg_match('/(?<= )@([^@ ]+)/', $string, $matches);
代码:

if(preg_match_all)('/(?将匹配项存储到作为第三个参数提供的数组中。在这种情况下,
preg_match()
语句如下所示:

preg_match('/(?<= )@([^@ ]+)/', $string, $matches);
代码:


if(preg_match_all)(“/”?第一个元素是整个匹配,aka$0,而第二个元素是第一个内存捕获,aka$1。
[^@]
应该是
[^@\b]
,以避免换行错误。第一个元素是整个匹配,aka$0,而第二个元素是第一个内存捕获,aka$1。
[^@]
应该是
[^@\b]
以避免换行错误。第一个元素是整个匹配,即$0,而第二个元素是第一个内存捕获,即$1。
[^@]
应该是
[^@\b]
以避免换行错误。第一个元素是整个匹配项,即$0,而第二个元素是第一个内存捕获项,即$1。
[^@]
应该是
[^@\b]
以避免换行错误。那么如何更改它,以便跟踪字符串中有多少次提到?@adit
count($matches[0])
@adit你能把你的string+regex发送到并发送一个永久链接吗(点击左边的软盘)?那么我该如何更改它,以便跟踪我的字符串中有多少提到?@adit
count($matches[0])
@adit你能把string+regex发送到并发送一个永久链接吗(点击左边的软盘)那么我如何更改它,以便跟踪我的字符串中有多少次提到?@adit
count($matches[0])
@adit你可以将字符串+正则表达式发送到并发送一个永久链接(单击左侧的软盘)?那么我如何更改它,以便跟踪我的字符串中有多少次提到?@adit
count($matches)[0])
@adit您能将字符串+正则表达式发送到并发送永久链接回吗(单击左侧的软盘)?