2016-04-21 51 views
0

如何使用preg_match php从字符串中获取值?如何使用preg_match php从字符串中获取值?

下面的代码。我试图获得Expiration Date:>>> Last update of whois之间的值08-dec-2021

我试图测试我的代码但不工作。 (没有任何回音,并显示错误 Warning: preg_match(): No ending delimiter '/' found in on line 3

<?php 
$test_text = "Updated Date: 04-feb-2014 Creation Date: 08-dec-2009 Expiration Date: 08-dec-2021 >>> Last update of whois >>> database: Thu, 21 Apr 2016 03:56:01 GMT"; 
preg_match('/Expiration Date: "(.+?)" >>> Last update of whois database',$test_text,$matches); 
echo $matches[1]; 
?> 

我怎样才能做到这一点?

+1

您是否调查过错误信息的含义?正则表达式必须以您开始使用的分隔符结束;在这种情况下'/'。 – chris85

回答

0

您必须更改3件东西
。省略"" from正则表达式
。您没有在正则表达式末尾输入“/
。更改 “Last update of whois database” 为“Last update of whois >>> database"
省略""从正则表达式

<?php 
$test_text = "Updated Date: 04-feb-2014 Creation Date: 08-dec-2009 Expiration Date: 08-dec-2021 >>> Last update of whois >>> database: Thu, 21 Apr 2016 03:56:01 GMT"; 
preg_match('/Expiration Date: (.+?) >>> Last update of whois >>> database/',$test_text,$matches); 
print_r($matches); 
?> 

工作Example

+0

请让我知道你是否已完成@mongmong seesee –

+0

是的,这是工作^^ –

+0

如果它有效,你应该接受答案,以便其他人可以从中受益。谢谢@ mongmong-seesee –

0

你可以做到这一点,你通过的preg_match使用下面

$test_text = "Updated Date: 04-feb-2014 Creation Date: 08-dec-2009 Expiration Date: 08-dec-2021 >>> Last update of whois >>> database: Thu, 21 Apr 2016 03:56:01 GMT"; 
preg_match('/Expiration Date: (.+?) >>>/',$test_text,$matches); 
echo $matches[1]; 

或者你的代码做也可以通过substr函数做下面的代码

$test_text = "Updated Date: 04-feb-2014 Creation Date: 08-dec-2009 Expiration Date: 08-dec-2021 >>> Last update of whois >>> database: Thu, 21 Apr 2016 03:56:01 GMT"; 

$pos=strrpos($test_text,"Expiration Date")+strlen("Expiration Date: "); 
echo substr($test_text,$pos,11); 
+0

第二个代码感兴趣^^ –

+0

它工作.....? –

相关问题