检查数组是否具有此值,然后抓住它并将其置为变量

时间:2016-11-20 10:41:46

标签: php arrays

我有一个类似下面的字符串

20Nov 18:14:xxxxxxxxxx给了xxxxx 10分。新的比特币收集余额:XXXXXXXX。价:675743957424

我会爆炸它然后会变成一个数组。

但是我想检查数组是否有Ref:675743957424,然后将它放在一个变量中,例如$ a。

我想这样做,因为字符串可能会从一个点变为另一个点,因此Ref的位置不固定。

我如何获得这样的东西?

感谢。

被修改

我尝试不爆炸它,而是尝试抓取数据,请参阅下面的代码

<?php
 $line = "20Nov 18:14:xxxxxxxxxx has given 10 points to xxxxx. New bitcoin collection Balance:XXXXXXXX. Ref:675743957424";
 // perform a case-Insensitive search for the word "Vi"

  if (preg_match("/\bRef\b/i", $line, $match)) :
  print "Match found!";
   //how can I grab the Ref part?
  endif;

&GT;

2 个答案:

答案 0 :(得分:1)

你必须使用:

preg_match ('/Ref:[\d]*/', $line, $matches);

匹配项将保存到变量$matches,然后您可以使用所述匹配进行操作。 RegExp,您只需查找字符串Ref:后跟任意数量的数字(\d查找任何数字,*查找前一个运算符的零或更多次数,数字在这种情况)。

如果你知道必须找到的确切位数,并且它没有变化,你可以使用{NUMBER}模式,例如:

preg_match ('/Ref:[\d]{12}/', $line, $matches);

这种情况下,您正在寻找Ref:之后的12位数字。

答案 1 :(得分:0)

您可以使用strpos()来检查字符串中是否存在子字符串。如果是,您可以将其分配给您的变量。请看下面的代码,它可能对你有帮助。

 $line = "20Nov 18:14:xxxxxxxxxx has given 10 points to xxxxx. New bitcoin collection Balance:XXXXXXXX. Ref:675743957424";
 $string_to_check ='Ref:675743957424'
 if (strpos($line,$string_to_check) !== false) { //Ref is present
  $a = $line;
 }