RegEx と VI (または類似のもの) を使用してテキストを自動入力できますか?

StackOverflow https://stackoverflow.com/questions/123334

  •  02-07-2019
  •  | 
  •  

質問

注記: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:幸せになる !

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top