に後でそれを再挿入残りの文字列:引数の便宜上一時的にラベル/タグを削除し、
$string = "string with between brackets and";
、操作は、単語「はい」と「B」で始まるすべての単語を連結しています。
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"
次のようになります。
"string with {LABELS} yesbetween yesbrackets {HERE} and {HERE}"
私の質問は:どのように私はこれを達成することができます?重要:私は、操作()を変更することができないので、ソリューションには、関数()や何かのラッパー関数が含まれているはずです。私はこれについてかなり長い間考えていましたが、これをどうやって行うのか混乱しています。私を助けてくれますか?
編集:この投稿に実際の操作()を入れることは多すぎるでしょう。実際に価値を上げることはありません(投稿を長くすることを除いて)。ここでは、実際の出力()と実際の出力の間に大きな違いはありません。私はここからのあらゆるアイデアを現実の状況に翻訳することができます:-)
あなたはoperate'を詳細に何をするか '記述するために必要なコードの一部の行であるか、良い答えを考え出すのは難しいことになるだろう。 –
実際には、操作()は、最初にタグ付けされた単語をタグ付けするPOSタグ付けツールです:string/NN/VBブラケット/ NNと/ INの間(タグは絞られています。ここに)。次に、いくつかの単語を固定文字でタグ付けします。結果は原理的にOPで述べた操作()に似ています。操作する単語の数は入力された単語の数と同じですが、いくつかの単語の前に連結された「はい」があります。したがって、出力された単語から「はい」を取り除くことによって元の入力を見つけることが可能である。私はこれが役立つことを願っています – Pr0no