2013-03-15 3 views
2

, 나는 대체 할 번호와 그룹 변수를 캡처 수확기 : margin:0px;margin:0;
이 내가 생각 해낸 정규식입니다 :이 예에서 :을 나타내는 것 $data = preg_replace('/([^\d])0px/', '$1 0', $data);PHP 정규식은 예를 들어

$1.

이제는 $1을 다른 캡쳐 그룹 변수로 해석하고 위와 같이 공백을 사용하지 않고 php없이 숫자와 결합하는 방법은 무엇입니까?

답변

2

'${1}0'을 사용할 수 있습니다. 자세한 내용은 PHP documentation on strings을 참조하십시오.

preg_replace documentation도 이에 대해 설명합니다.

덧붙여, 대신 (최대 5.2.4과)이 정규 표현식을 사용할 수

$data = preg_replace('/\D0\Kpx/', '', $data); 

\D하는 [^\d]에 해당하는 숫자가 아닌 것은, 일치합니다.

\K은 일치하기 전에 오는 모든 항목을 필요로하지만 일치 항목 자체는 제외시킵니다. 따라서 패턴의 첫 번째 부분을 저장하고이를 대체에 포함 할 필요가 없습니다.

Here is the documentation on escape sequences.

+0

감사합니다 잔뜩. '\ K'에 대해 몰랐고 매우 유용했습니다. –

2

이와 같은 작업을 수행하려고하십니까?

<?php 

function replace_px($val, $new_val, $str) { 
    return $new_str = str_replace($val . "px", $new_val, $str); 
} 

$str = "margin:0px;"; 
echo replace_px(0, 0, $str); 

?> 

// 출력

margin:0; 
+0

'margin : 10px;'에서 "실패"하기 때문에'str_replace'를 사용할 수 없습니다. –