2010-01-23 3 views
1

나는 제거해서는 안되는 문자열의 일부를 꺼내는 preg_replace를 가지고 있습니다. 다음을 찾아야합니다 : images_client/39/structure/party-2/ 그리고 images_client/39/structure/xxx/ 으로 바꾸십시오. apple_logo 바로 전에 이미지/부분을 제거하고 있습니다. .JPGpreg_replace 여분의 문자열을 꺼내는 중

<?php 
    echo '<br>-------- preg_replace on a css string with slashes ------<br>'; 
    $string='/images_client/39/structure/party-2/images/apple_logo.jpg'; 
    echo 'Before: '.$string.'<br>'; 
    print preg_replace("/images_client\/39\/structure\/(\S+)\//", "images_client/39/structure/xxx/", $string) . "\n"; 
?> 
+1

슬래시가 포함 된 패턴을 다룰 때 다른 패턴 구분자를 선택하십시오 (원하는 것을 고를 수 있습니다). 모든 '\ /'는 눈을 피로하게 만듭니다. 또한 일부 대답을 수락하는 것을 고려할 수도 있습니다 –

답변

0

이 시도 :

preg_replace('#images_client/39/structure/[^/]+/#s', 'images_client/39/structure/xxx/'); 
+0

고맙습니다. – EricP

0

\S 대신 [^/]을 시도해보십시오

/images_client\/39\/structure\/([^\/]+)\//