$data['sessionUser']
の$data['user']
を検索して置き換えようとしています。Vim検索/置換:エスケープするには何が必要ですか?
しかし、どの検索文字列を使用しても、結果として常にパターンが見つかりません。
正しい検索文字列は何ですか?これらの文字をエスケープする必要はありますか? :%s/$data['user']/$data['sessionUser']/g
$data['sessionUser']
の$data['user']
を検索して置き換えようとしています。Vim検索/置換:エスケープするには何が必要ですか?
しかし、どの検索文字列を使用しても、結果として常にパターンが見つかりません。
正しい検索文字列は何ですか?これらの文字をエスケープする必要はありますか? :%s/$data['user']/$data['sessionUser']/g
:%s/\$data\[\'user\'\]/$data['sessionUser']/g
私はこれをテストしていないが、私はそれが動作する必要がありますね。
[
charは正規表現で意味を持ちます。それはcharacter rangesの略です。 $
文字も意味があります。それはend-line anchorの略です。だからあなたは多くのことを逃れなければなりません。 thisまたはoneのような少しのプラグインを試してみて、視覚的な検索を使用することをお勧めします。
私は本当に検索のためのより簡単なオプションを探していました。私は組み込み検索と置換についてもっと知るようになるだろうが、あなたが私に見せたものの1つを試してみる可能性が高い。ありがとう。 – Falassion
あり何も悪いことは、与えられた答えとしていませんが、あなたがこれを行うことができます:交換の影響を受けている試合の一部を区切るために使用することができます
:%s/$data\['\zsuser\ze']/sessionUser/g
\zs
と\ze
。 $
はパターンの先頭にあり、ここではEOLと一致できないため、エスケープする必要はありません。 [
と一致するものがないので、]
から脱出する必要はありません。しかし、あなたがすべてのルールを覚えていない場合、これらの文字をエスケープすることに確かに害はありません。詳細は、help pattern.txtを参照してください。しかし、すべてを一気に消化しようとしないでください!
あなたは空想を取得したい場合は、あなたが行うことができます:
:%s/$data\['\zsuser\ze']/session\u&/g
&
は(存在する場合\zs
と\ze
で区切られた)マッチしたテキスト全体を指し、それは、この場合の「利用者」になります。 \u
を置換文字列で使用すると、次の文字は大文字になります。私はこれが役立つことを願っています
置換部分にエスケープは必要ありません。 –
ええ、それは働いた。ありがとう! – Falassion