>> Delete Reply from No. 20086 article
No. RE: [질문] 정규 표현식

등록 2001-02-07 12:38:00 By localhost     조회 2
이름 무정한    

		: 정규 표현식에 관한 질문입니다.
:
: 문자열중 가장 마지막 "/" 부터 나머지 문자열은 모두 삭제하고 출력하는 방
: 법은 없나입니다.
:
: 예를 들어 /aaa/bbb/ccc 라는 문자열이 있을 때 /aaa/bbb 라고 반환하게 만
: 드는 정규 표현식이 궁금합니다.
 <?
$directory = "/aaa/bbb/ccc";
 $startTime1 = microtime();
$reversedOriginString = strrev($directory);
$reversedString = strstr($reversedOriginString, "/");
$resultString = substr(strrev($reversedString),0,-1);
$endTime1 = microtime();
$processingTime1 = get_microtime($startTime1, $endTime1);
echo "
method 1: using String functions
<ul>
        origin : $directory<br>
        stage1 : $reversedOriginString<br>
        stage2 : $reversedString<br>
        result : $resultString<br>
        processing time = $processingTime1;
</ul>
";
  $startTime2 = microtime();
$resultString = eregi_replace("(/.[^/]*)$","",$directory);
$endTime2 = microtime();
$processingTime2 = get_microtime($startTime2,$endTime2);
echo "
method2 : using eregi_replace
<ul>
        origin : $directory<br>
        result : $resultString<br>
        processing time = $processingTime2
</ul>
";
 $differenceTime = sprintf("%.10f",$processingTime1 - $processingTime2);
$absTime = $differenceTime;
if($differenceTime<0) $absTime = sprintf("%.10f",$differenceTime*(-1));
 echo "
comparision of processing time :
<ul>
        method1 : $processingTime1<br>
        method2 : $processingTime2<br>
";
if($differenceTime<0) $compareString = "method2 is slower than method1 (". $absTime . ")";
else if($differenceTime == 0) $compareString = "method1 is equals to method2";
else $compareString = "method1 is slower than method2 (". $absTime. ")";
 echo "
        $compareString
</ul>
";
 #적수게시판 함수참조
function get_microtime($start, $end) {
  # 주어진 문자열을 나눔 (sec, msec으로 나누어짐)
  $start = explode(" ", $start);
  $end = explode(" ", $end);
   $time[msec] = $end[0] - $start[0];
  $time[sec]  = $end[1] - $start[1];
   if($time[msec] < 0) {
    $time[msec] = 1.0 + $time[msec];
    $time[sec]--;
  }
   $term = sprintf("%.10f", $time[sec] + $time[msec]);
   return $term;
}
?>
 저의 컴퓨터에서의 결과는 다음과 같았습니다.
method 1: using String functions
      origin : /aaa/bbb/ccc
     stage1 : ccc/bbb/aaa/
     stage2 : /bbb/aaa/
     result : /aaa/bbb
     processing time = 0.0000860000;
 method2 : using eregi_replace
      origin : /aaa/bbb/ccc
     result : /aaa/bbb
     processing time = 0.0001170000
 comparision of processing time :
      method1 : 0.0000860000
     method2 : 0.0001170000
     method2 is slower than method1 (0.0000310000)--외로워라 이네몸은 뉘와함께 놀아날꼬.
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved