Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I use RegEx and VI (or something similar) to autofill some text for me?

Tags:

html

php

vi

NOTE: I am not set on using VI, it is just the first thing that came to mind that might be able to do what I need. Feel free to suggest any other program.

I have a form with nearly 100 fields that I would like to auto-fill with PHP. I know how to do the autofill, but I would like to avoid manually adding the needed text to 100 fields.

Is there an automated way I can take the text:

<input name="riskRating" id="riskRating" type="text" />

and change it to:

<input name="riskRating" id="riskRating" type="text" value="<?php echo $data['riskRating']; ?>" />

Remember that I am wanting to do this to almost 100 fields. I am trying to avoid going to each field, pasting in the PHP code and changing the variable name manually.

I'm hoping some VI guru out there knows off the top of his/her head.

like image 323
Haabda Avatar asked Sep 23 '08 19:09

Haabda


3 Answers

Taking some ideas from Zsolt Botykai and Mark Biek:

:%s:<input\(.* id="\([^"]*\)".*\) />:<input \1 value="<?php echo $data['\2']; ?> />:g
like image 96
Daniel James Avatar answered Nov 04 '22 12:11

Daniel James


:%s:\(<input name="\([^"]\+\)" id="[^"]\+" type="text" \)/>:\1value="<?php echo $data ['\2']; ?>" />:gci

That's one line. HTH.

like image 22
Zsolt Botykai Avatar answered Nov 04 '22 10:11

Zsolt Botykai


I did it like this. I'm not sure how to escape it to work in vim though. I'll edit if I can figure it out

This is the search part of the regex:

<input (.*) id="(.*?)" (.*) />

This is the replace part:

<input \1 id="\2" \3 value="<?php echo $data['\2']; ?>" />
like image 2
Mark Biek Avatar answered Nov 04 '22 11:11

Mark Biek