반복되는 단어로 구성된 문자열이 있습니다. 'L3'과 'L4'사이에있는 부분 문자열 'OK'를 바꾸려고합니다. 당신이 내 코드를 찾을 수 아래 : 내가는 preg_match와 그 패턴을 사용하는 경우preg_replace의 도움으로 부분 문자열을 바꾸는 방법
$search = "/(?<=L3).*(OK).*(?=L4)/";
$replace = "REPLACEMENT";
$subject = "'L1' => ('Vanessa', 'Prague', 'OK'), 'L2' => ('Alex', 'Paris', 'OK'), 'L3' => ('Paul', 'Paris', 'OK'), 'L4' => ('John', 'Madrid', 'OK')";
$str = preg_replace($search, $replace, $str);
을, 그것은 올바른 문자열을 (세번째 'OK') 찾습니다. 그러나 해당 패턴을 preg_replace에 적용하면 괄호로 묶은 하위 패턴 대신 전체 패턴과 일치하는 하위 문자열을 대체합니다.
내 코드에서 변경해야 할 내용을 알려주십시오. 정규식에 대해 비슷한 양의 질문이 많이 있다는 것을 알고 있지만 패턴이 정확하고 preg_replace 함수와 혼동 스럽습니다.