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

<?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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值