정규 표현식 문자를 취소합니다 탈출 :내가 그들을 대체하여 문자열에서 특정 문자를 제거하고 있습니다
% -> %%
: -> %c
/-> %s
문자열 "% c를"제대로 %%의 C로 탈출한다. 그러나 str_replace (배열 ('%%', '% c', '% s'), 배열 ('%', ':', '/'), $ s) ":"에 입력하십시오. 그것은 문서마다 str_replace의 적절한 동작입니다. 그래서 정규 표현식을 사용하여 해결책을 모색하고 있습니다.
이스케이프 처리 된 문자열을 올바르게 해독하려면 어떻게해야합니까? 고맙습니다. 당신은 연속적으로 한 번이 아니라 모든 이스케이프 시퀀스를 대체 할 필요가
<?php
$escaped = "Hello %% World%c You'll find your reservation under %s";
echo preg_replace("/%TMP/", "%",
preg_replace("/%s/", "/",
preg_replace("/%c/", ":",
preg_replace("/%%/", "%TMP", $escaped)));
echo "\n";
# Output should be
# Hello % World: You'll find your reservation under/
?>
배열 순서대로 수행합니까? 확실하지는 않습니다. 마지막으로 배열을 변경하면 어떻게 될까요? str_replace (배열 ('% c', '% s', %% '), 배열 (': ','/ ','% ')) – stephenbayer
@stephenbayer 죄송합니다. 회신을 처음 읽으십시오. 좋은 해결책이라면 모든 경우에 작동하는지 확인하겠습니다. – romaninsh
@stephenbayer 아니요 작동하지 않아서 대신 % :가 생성됩니다. – romaninsh