RegEx と VI (または類似のもの) を使用してテキストを自動入力できますか?
質問
注記:VI を使用することに決めているわけではありません。必要なことを実行できそうなものが最初に思い浮かんだだけです。他のプログラムもお気軽にご提案ください。
PHP で自動入力したい、100 近くのフィールドがあるフォームがあります。自動入力の方法は知っていますが、必要なテキストを 100 個のフィールドに手動で追加することは避けたいと考えています。
テキストを自動的に取得する方法はありますか?
<input name="riskRating" id="riskRating" type="text" />
それを次のように変更します。
<input name="riskRating" id="riskRating" type="text" value="<?php echo $data['riskRating']; ?>" />
これをほぼ 100 のフィールドに対して実行したいと考えていることを思い出してください。各フィールドに移動したり、PHP コードを貼り付けたり、変数名を手動で変更したりすることを避けようとしています。
VI の第一人者が頭からわかっていることを願っています。
解決
Zsolt Botykai と Mark Biek からのアイデアをいくつか引用します。
:%s:<input\(.* id="\([^"]*\)".*\) />:<input \1 value="<?php echo $data['\2']; ?> />:g
他のヒント
:%s:\(<input name="\([^"]\+\)" id="[^"]\+" type="text" \)/>:\1value="<?php echo $data ['\2']; ?>" />:gci
それは一行です。HTH。
こんな感じでやりました。ただし、vim で動作させるためにそれをエスケープする方法はわかりません。分かりましたら編集します
これは正規表現の検索部分です。
<input (.*) id="(.*?)" (.*) />
これが交換部分です:
<input \1 id="\2" \3 value="<?php echo $data['\2']; ?>" />
ステップ1 :チェーン type="text" を検索します。
/type="text"
必要な文字列がすべてキャッチされていることを確認します。ステップ2 :必要な文字列に置き換えます。
:%s//type="text" value="<?php echo $data riskrating]; ?>"/g
ステップ3:幸せになる !
所属していません StackOverflow