나는 반드시 제어 할 필요가없는 콘텐츠에 대해 preg_replace를 실행 중이며 통화 값 (예 : $1.00
)을 포함하는 대체 값 문제가 발생합니다. 틀림없이 이는 다른 질문에서 다루어 진 일반적인 문제입니다. 내가 찾은 가장 가까운 솔루션입니다 : 대체 값이 적어도 내가 볼 수있는 방식으로, 내가 미리 피할 수있는 일이 아니기 때문에대체 값을 이스케이프 처리하는 preg_replace "gotcha"
http://www.procata.com/blog/archives/2005/11/13/two-preg_replace-escaping-gotchas/
내 문제가 더 복잡합니다. 여기 내 레그 코드입니다 :
$body = preg_replace('/<special_tag id="'.$tagID.'">(.*?)<\/special_tag>/','$1',$body);
당신은 내가 설정 한 사용자 정의 태그 내의 모든 컨텐츠를 캡처하고, 주변의 여는 태그와 닫는 태그를 제거하지만, 내부에있는 내용을 유지하고있어 볼 수 있듯이. 그러나 대체품 '$1'
은 필수 이스케이프에 적합하지 않으므로 대체 값에있는 통화 값이 잘못 종료됩니다.
이 대체품을 생각해 봤나요? 특정 태그에 대한 고유 ID를 고려해야한다는 것을 명심하면서 내 특수 태그를 제거하는 데 사용할 수있는 다른 것이 있습니까?
도움이 될 것입니다.
과 같이 발생합니다 "다른 뭔가가 있나요 내 특수 태그를 제거하는 데 사용할 수 있습니다. "uuuh, [DOM 파서는 어떨까요?] (http://stackoverflow.com/questions/3577641/best-met hods-to-parse-html/3577662 # 3577662)? – Gordon
동일한 스크립트의 다른 부분에서이 메서드를 실제로 사용했지만이 대체 알고리즘에서는 과도한 것처럼 보였습니다. 가능한 경우 오버 헤드를 낮추기 위해 노력했지만이 옵션 만있는 경우에는 다시 사용합니다. – oucil
그것은 * 유일한 * 옵션이 아니지만 Regex로 접근하기 전에 (내) 마음에 온다. – Gordon