我有一个类似下面的字符串
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;
答案 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;
}