通过maches文本从文件中提取信息

时间:2013-12-07 10:22:39

标签: php regex

我有一个php文件,在这个文件中我有一些数据可以说

<This is the content of the text file>

"dim://realthings1/true"
"rel://stop1"
"dim://realthings2/false"
"rel://stop2"
"dim://realthings3/false"
"rel://stop3"
"dim://realthings4/false"
"rel://stop4"

<This is the rest of content>

我需要一个php代码来提取和回显第一个“dim:// realthings1 / true”结果dim://realthings1/true 但是这个“dim:// .......”数据每1个小时都在变化 如何从那里提取数据,其中一个PHP代码提取“dim:// ......”的第一个值

我试过

<?php 
$Text=file_get_contents("test.php");
preg_match('/dim\s*:\s*\'([^\']+)\'/',$Text,$Match)
echo $Match[1] ."\n";
?>

此代码可以正常使用此数据

  

dim:'realthings1'

我试图改变这段代码而没有结果! 请帮助!

1 个答案:

答案 0 :(得分:0)

如果您只想要该行,则可以使用UN-greedy标志U

$Text=file_get_contents("test.php");
$Match=array();
if (preg_match('/dim\s*:\s*([^\']+)[\'"]/U',$Text,$Match)){
    echo $Match[1];
}

适用于所有比赛

$Text=file_get_contents("test.php");
$Match=array();
if (preg_match_all('/dim\s*:\s*([^\']+)[\'"]/U',$Text,$Match)){
    print_r($Match[1]);
}

以下内容将匹配以dim开头,后跟0或更多空格的任何内容:然后0或更多空格(不是'或'或空格),然后是'或'或空格。并且是贪婪的。括号内匹配的项目是$Matches[1]中的内容。希望现在很清楚

/dim\s*:\s*([^\'"\s]+)[\'"\s]/U