关闭

asp,php取夹在俩字符串之间的字符串 的函数

760人阅读 评论(0) 收藏 举报

经常在提取 文本操作中要找出俩特定字符串之间的部分,以下函数将实现此功能。

asp:

<%
'取中间字符串
function getmidstr(L,R,str)

  int_left
=instr(str,L)
  int_right
=instr(str,R)

  
If int_left>0 and int_right>0 Then
  getmidstr
=mid(str,int_left+len(L),int_right-int_left-len(L))
  
Else
  getmidstr
="执行的字符串中不包含“"&L&"”或“"&R&""
  
End If
end function

str
="123456789"
response.write 
"<BR>"&getmidstr("23","78",str)
’将输出
"456"
%
>

扩展模式:

<%
'取中间字符串
function getmidstr(L,R,str,m,n) 
          
'm,n为控制参数,表示输出的字符串将分别向左,向右多输出m,n个字符。
  int_left=instr(str,L)
  int_right
=instr(str,R)

  
if (m="left"then   '若m为“left”,输出的字符串将包含左边部分(L),下同
  m=len(L)
  
end if
  
if (n="right"then
  n
=len(R)
  
end if

  
if (m>(len(L)+int_left-1)) then
  m
=(len(L)+int_left-1)
  
end if
  
If int_left>0 and int_right>0 Then
  getmidstr
=mid(str,int_left+len(L)-m,int_right-int_left-len(L)+n+m)
  
Else
  getmidstr
="执行的字符串中不包含“"&L&"”或“"&R&""
  
End If
end function

str
="abcdefghijk"
response.write 
"<BR>"&getmidstr("bcd","hi",str,0,0
‘输出
"efg"
response.write 
"<BR>"&getmidstr("bcd","hi",str,2,1
‘输出
"cdefgh"
response.write 
"<BR>"&getmidstr("bcd","hi",str,"left","right"
‘输出
"bcdefghi"


%
>

 

资料来源http://www.uptoday.cn

 


php:

 

 

简单模式:

  <?php

//取中间字符串
function getmidstr($L,$R,$str)
{  
  
$int_l=strpos($str,$L);
  
$int_r=strpos($str,$R);
  
If ($int_l>-1&&$int_l>-1)
    {
    
$str_put=substr($str,$int_l+strlen($L),($int_r-$int_l-strlen($L)));
    
return $str_put;
    }
  
else
    
return "执行的字符串中不包含“".$L."”或“".$R."";
}
$str="123456789";
echo getmidstr("23","8",$str);
//输出:"4567"
  ?>

扩展模式:

  <?php

//取中间字符串
function getmidstr($L,$R,$str,$m,$n){

  
  
if($m=="left"){$m=strlen($L);}
  
if($n=="right"){$n=strlen($R);}
  
$int_l=strpos($str,$L);
  
$int_r=strpos($str,$R);
  
If ($int_l>-1&&$int_l>-1)
    {
    
if ($m>(strlen($L)+$int_l)){$m=(strlen($L)+$int_l);}
    
if ( $n>(strlen($str)-$int_r) ){$n=(strlen($str)-$int_r);}
    
$str_put=substr($str,$int_l+strlen($L)-$m,($int_r-$int_l-strlen($L)+$n+$m));
    
return $str_put;
    }
  
else
    
return "执行的字符串中不包含“".$L."”或“".$R."";
}
$str="123456789";
echo getmidstr("23","78",$str,1,"right");
//输出"345678"
  ?>
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:13037次
    • 积分:243
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:0篇
    • 译文:0篇
    • 评论:9条
    最新评论
    我的网络