2011-11-21 3 views
0

그냥 알고 싶습니다. preg_replace 함수의 대체 내용은 무엇입니까?mb_ereg_replace 일치 항목을 얻으십시오

이걸 얻을 가능성이 있습니까? "텍스트"및 "테스트"일치 된 것을 내가 알고 싶은

$string = "test text 12345"; 

$string = mb_ereg_replace('#text|test#', '$1-test2',$string); 

, 예를 들어

? 아니면 preg_match를 절대적으로 필요하다고 부르는 것입니까?

+0

일치 시키거나 바꾸시겠습니까? 아니면 그것이 실제로 아무것도 대체했는지 알고 싶습니까? 그렇다면 대체하기 전과 후에 $ string을 비교할 수 있습니다. – Znarkus

+0

대체하고 싶습니다. 대체품과 일치하고 싶습니다. 그러나 대체 기능과 일치 함수를 호출 할 때 나에게 좋지는 않습니다. 왜냐하면 같은 것을 수행하기 때문에 => 일치하는 것입니다. – MnomrAKostelAni

답변

1

당신은 preg_replace이다에 참조 카운트 변수를 전달할 수 있습니다 발생한 일치/바꾸기 횟수를 반환합니다.

http://php.net/manual/en/function.preg-replace.php

$string = "test text 12345"; 
$count = 0; 
$string = preg_replace('text', 'test2', $string, -1, $count); 
echo $count; // 1 
+0

이 답변은 원래의 preg_replace 질문에 대한 것임을 유의하십시오. – hafichuk

+0

감사하지만, 일치하는 구문을 제공하지는 않습니다. :) – MnomrAKostelAni

+1

@maka 나는 내가 이해하고 있는지 잘 모르겠다. 일치하는 구문이 무엇인지 알고 있습니다 :'test'. 참고로,이 질문을 삭제하면 그 질문에 대한 변경 사항이 모두 주어진 답을 무효화 했으므로 삭제하는 것이 좋습니다. – hafichuk

0

음 ... 대신 preg_replace_callback()을 사용할 수 있습니다. 그러면 매치마다 호출되는 사용자 지정 함수를 사용할 수 있습니다. 그러면 당신은 당신이 원하는대로 그것을 대체 할뿐만 아니라 경기를 "볼"수 있습니다.

+0

고맙지 만 mb_ereg_replace를 사용하고 있습니다. 내가 mb_ereg_replace_callback 함수를 찾을 수 없습니다 ... – MnomrAKostelAni

0

찾으려는 패턴이 아니고 문자열 내의 텍스트 인 경우 strstr을 사용할 수 있습니다.

$findthis = "Apple"; 
$container = "Apple Orange Kiwi"; 

if (strstr($container,$findthis)) 
    echo $findthis.' is present'; 
else 
    echo 'Not found'; 
} 
+0

미안하지만, 그것은 패턴입니다 – MnomrAKostelAni

+0

좋아, 그럼 내 대답은 신경 쓰지 마라. :) – djdy

0

사용 preg_match() 테스트 할 다음 preg_replace() 당신은 또한 솔루션 인 preg_replace_callback() 문제를 얻으려면.

0

경우 당신이 원하는 모든입니다 :

  1. 는 간단한 문자열로 교체 (예를 들어, texttest2)
  2. 아무것도 대체 여부를 찾습니다. strcmp() 다음 단순히 대체하는 str_replace()을 사용하는 것이 경우

은 (즉, 대체되었다.) 문자열이 변경을 확인하는 방법

0

이 시도하십시오 : 당신이 정말 할 preg_replace이다 필요한 경우

$string = 'test text 12345'; 
if ($string != ($replaced = preg_replace('/text/', 'test2', $string))) { 
    echo 'text was replaced'; 
} 

비록, 당신은 않는 strstr 또는 stristr을 사용해야합니다.

관련 문제