0

PHPコードのTWIGへのなんらかの不適切な変換を含むファイルがあります。括弧()の最初と最後の出現と、{%と%}タグで囲まれた$の出現のみを削除する必要があります。

たとえば、ファイルに次のようなものがある場合:

{% if($var.has($something)) %}
This symbols ($($)$) won't be deleted becoase they aren't between {% and %}

私はそれを次のように変換する必要があります:

{% if var.has( something) %}
This symbols ($($)$) won't be deleted becoase they aren't between {% and %}

これを行う方法のアイデアはありますか?

4

2 に答える 2

1

vim構文が関係しているとき、私はそのタスクに使用するのが好きです。あなたの場合:

vim -c'%g / {%/ norm /(^ [ma%x`ar'ファイル

説明:-vim-c-コマンドを実行します

  • %g-各行
  • / {%-パターンを含む{%
  • norm-entrervimノーマルモード
  • /(-に移動(
  • ^ {-ESC(CTRL + V <Followed by Escを押す)
  • ma-現在の場所を「a」としてマークします
  • %-一致するクロージングに移動します)
  • x-削除します
  • `a-に戻る(
  • r-スペースに置き換えます
于 2013-01-23T22:16:00.710 に答える
0

どのくらい正確に必要ですか?1行に複数の{%%} {%%}がない場合(またはそれs/%}/&\n/gを防ぐことができる場合)、恐ろしく醜いものを使用できます

sed -e ':s; s/{%\(.*\)\$\(.*\)%}/{%\1\2%}/; ts; s/{%\([^(]*\)(\(.*\))\(.*\)%}/{%\1 \2 \3%}/'

$内のすべてのsを削除し{% %}、次に最も外側の括弧(存在する場合)を削除します。

于 2013-01-23T22:00:12.887 に答える