, 나는 대체 할 번호와 그룹 변수를 캡처 수확기 : margin:0px;
margin:0;
이 내가 생각 해낸 정규식입니다 :이 예에서 :
을 나타내는 것 $data = preg_replace('/([^\d])0px/', '$1 0', $data);
PHP 정규식은 예를 들어
$1
.
이제는 $1
을 다른 캡쳐 그룹 변수로 해석하고 위와 같이 공백을 사용하지 않고 php없이 숫자와 결합하는 방법은 무엇입니까?
, 나는 대체 할 번호와 그룹 변수를 캡처 수확기 : margin:0px;
margin:0;
이 내가 생각 해낸 정규식입니다 :이 예에서 :
을 나타내는 것 $data = preg_replace('/([^\d])0px/', '$1 0', $data);
PHP 정규식은 예를 들어
$1
.
이제는 $1
을 다른 캡쳐 그룹 변수로 해석하고 위와 같이 공백을 사용하지 않고 php없이 숫자와 결합하는 방법은 무엇입니까?
'${1}0'
을 사용할 수 있습니다. 자세한 내용은 PHP documentation on strings을 참조하십시오.
preg_replace
documentation도 이에 대해 설명합니다.
덧붙여, 대신 (최대 5.2.4과)이 정규 표현식을 사용할 수
$data = preg_replace('/\D0\Kpx/', '', $data);
\D
하는 [^\d]
에 해당하는 숫자가 아닌 것은, 일치합니다.
\K
은 일치하기 전에 오는 모든 항목을 필요로하지만 일치 항목 자체는 제외시킵니다. 따라서 패턴의 첫 번째 부분을 저장하고이를 대체에 포함 할 필요가 없습니다.
이와 같은 작업을 수행하려고하십니까?
<?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;
'margin : 10px;'에서 "실패"하기 때문에'str_replace'를 사용할 수 없습니다. –
감사합니다 잔뜩. '\ K'에 대해 몰랐고 매우 유용했습니다. –