您的位置:首页 > 其它

一个根据正则匹配提取特定值的例子(当要找的两个关键字不相连时)

2012-08-30 23:35 465 查看
<?php

$str="两侧海马、颞上叶、顶叶及杏仁核明显萎缩,侧脑室扩张,脑沟裂增宽,额叶为著。其余脑实质内未见明确异常信号,中线结构居中。小脑、脑干未见明确异常信号hi。DWI及SWI 相颅内未见明确异常信号影。 海马高度 左侧0.397cm,右侧0.397cm(参考值0.6-0.8cm);脉络膜裂宽度 左侧0.198cm,右侧0.273cm(参考值0.1-0.2cm); 内嗅皮层厚度 左侧0.124cm,右侧0.19cm(参考值0.2cm);颞叶干宽度 左侧0.645cm,右侧0.62cm(参考值0.9-1.1cm)。侧裂池宽度
左侧0.670cm,右侧0.818cm。 2DHMRS(3.0T 短回波TE 32ms):海马total NAA/CR 2.454R 2.09L MI/CR 0.524R 0.55L 1.76R头NAA/CR 2.90R 2.21L MI/CR 0.45R 0.53L 体NAA/CR 2.37R 1.93L MI/CR 0.56R 0.51L 尾NAA/CR 1.74R 1.75L MI/CR 0.72R 0.56L 杏仁核 NAA/CR 2.3R 2.82L MI/CR 0.79R 0.71L。扣带回total
NAA/CR 3.098 MI/CR 0.697。

";

$st="海马total MI/NAA";

$st1="扣带回MI/CR";

$st2="侧裂池宽度";

$input=preg_match('/[A-Z]+.[A-Z]+/',$st1,$match,PREG_OFFSET_CAPTURE);

print_r($match);

echo "<br>";

if($input)

{

$strr=substr($st1,0,$match[0][1]);

//利用循环的思想

$strpos=0;

$max=strlen($str);

$yes=0;

while($strpos<$max)

{

$strco=substr($str,$strpos);

$strposs=strpos($strco,$match[0][0]);

if($strposs>100)

$strcop=substr($strco,$strposs-100,100);

else

$strcop=substr($strco,0,$strposs);

$strpos2=strpos($strcop,$strr);

if($strpos2!==false)

{

$strnum=substr($strco,$strposs,20);

preg_match_all('/\d+.\d+|d+/',$strnum,$matches);

$yes=1;

break;

}

else

$strpos=$strpos+$strposs+2;

}

if($yes)

{

print_r($matches);

echo $matches[0][0].'<br>'.$matches[0][1].'<br>';

}

else

echo "没找到<br>";

}

else

{

$strpos=strpos($str,$st2);

if ($strpos!==false)

{

$str=substr($str,$strpos,50);

$str=preg_match_all('/\d+.\d+|d+/',$str,$matches);

echo $matches[0][0].'<br>'.$matches[0][1].'<br>';

}

else

echo "没找到<br>";

}

另外,在检测一个字符串是否存在于另外一个字符串中时,为了排除空格的影响,可以使用str_replace()函数

一个例子:

$l="我是真的 很好 aineg eing";

echo "<br>".$l."<br>";

$s=str_replace(' ','',$l);

echo $s;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐