에 나중에 재 삽입 문자열의 나머지 :임시 라벨/태그를 제거하고
인수를 위해서$string = "string with between brackets and";
작업이 '예'라는 단어와 'B'로 시작하는 모든 단어를 연결할 수 있습니다.
"string with {LABELS} yesbetween yesbrackets {HERE} and {HERE}"
내 질문은 : 나는이 작업을 수행 할 수있는 방법
function operate($string) {
$words = explode(' ', $string);
foreach ($words as $word) {
$output[] = (strpos($word, 0, 1) == 'b') ? "yes$word" : $word;
}
return implode(' ', $output);
}
이 함수의 출력은
"string with yesbetween yesbrackets and"
가 지금은 제자리로 일시적으로 삭제 레이블을 삽입 할 것 ? 중요 : operations()를 변경할 수 없기 때문에, 솔루션은 operate() 또는 뭔가 주위에 래퍼 함수를 포함해야합니다. 나는 이것을 꽤 오래 동안 생각해 왔지만 이것을하는 방법에 대해서는 혼란 스럽다. 너 좀 도와 줄 수있어?
편집 :이 게시물에는 실제 조작()을 넣는 것이 너무 많습니다. 그것은 정말로 가치를 추가하지 않을 것입니다. 여기에() 실제 출력과 실제 출력 사이에는 큰 차이가 없습니다. 여기에있는 아이디어를 실제 상황으로 번역 할 수 있습니다 .-)
당신은 operate'이 구체적으로 무엇을 '설명 할 필요가 몇 줄의 코드 또는이 좋은 답변을 마련하기 어려울 것 . –
실제로,()는 POS 태그를 붙인 태그로서, 먹이가 된 단어에 먼저 태그를 붙입니다 :/VB와/VB 사이의/NN과/IN 사이의 문자열/NN (태그는 짜증나게합니다. 이리). 그런 다음 단어의 일부를 고정 된 문자로 태그 지정합니다. 그 결과는 원칙적으로 OP에서의 operations()에서 설명한 것과 유사합니다. 연산을 수행하는 단어의 수는 입력 된 단어의 수와 동일하지만 일부 단어의 앞에는 '예'가 연결됩니다. 따라서 출력 된 단어에서 '예'를 제거하여 원래 입력을 찾을 수 있습니다. 이게 도움이 되길 바란다. – Pr0no