PHP ファイルを解析し、関数のプロトタイプ要素を HTML でラップしています。ただし、アンパサンドがあると、コードが壊れます。
入力: function foo (&$var1, &$var2){...}
//文字列として
希望する出力 (HTML 内) : &$var1, &$var2
//基本的には、ブラウザに正しく表示されるように変数を出力するだけです
現在、各変数を awk のサブメソッド1に送信してから、sed に送信しています。
sub(/^&/, "\\\&", param) #param is the variable of interest (e.g. &$var1)
#Intermediate step in case it's relevant. The awk-processed elements
#are sent to ${file}_param.txt. Each set of parameters are delimited by colons.
param=$(cut -d: -f$counter ${file}_param.txt)
#Replace some default text in template file with real stuff.
sed -i "s|@PARAM|$param|1" "$base"_funct_def.txt
私が得ている出力:アンパサンドは解釈されています。試合全体が置き換えられます。
問題の分離:代わりに次のようにすると、ブラウザに「g$var1」が表示されます。ただし、代わりに「&」を取得しようとしています。
sub(/^&/, "g", param)
私の試み: awk が最初にそれを '\&' に処理し、それが sed に供給されて '\&' をリテラルの '&' として解釈すると考えたので、3 つのバックスラッシュを使用しました。ただし、1〜6個のバックスラッシュを試しましたが、役に立ちませんでした。
質問:どうすれば & をエスケープできますか?
1マニュアル: http://www.staff.science.uu.nl/~oostr102/docs/nawk/nawk_92.html
私がやろうとしていることに関するいくつかの「メタ」/デザインの質問 (質問には必要ありません!!)
私は、(Javadocs のように構造化された) 少しのドキュメントを生成しようとしている PHP ファイルをたくさん持っています。関数名、パラメーター、および戻り項目を一覧表示するために、REGEX とシェル スクリプトを使用して解析しています。これまでのところ、REGEX はかなりうまく機能していると思いますが、これがどのように REGEX を使用すべきではないかについて多くのことを読みました。これに関するコメントを歓迎します (ドキュメントは通常どのように生成されますか?)。みんなありがとう!