2008-09-23 2 views
6

ПРИМЕЧАНИЕ: Я не настроен на использование VI, это просто первое, что приходило в голову, что могло бы сделать то, что мне нужно. Не стесняйтесь предлагать любую другую программу.Могу ли я использовать RegEx и VI (или что-то подобное) для автозавершения некоторого текста для меня?

У меня есть форма с почти 100 полями, которые я хотел бы автозаполнять с помощью PHP. Я знаю, как сделать автозаполнение, но я бы хотел, чтобы вручную не добавлять текст в 100 полей.

Есть автоматизированный способ, которым я могу взять текст:

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

и изменить его на:

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

Помните, что я хочу сделать это почти 100 полей. Я стараюсь избегать перехода в каждое поле, вставляя в код PHP и изменяя имя переменной вручную.

Я надеюсь, что какой-то VI гуру там знает его голову.

ответ

5

Принимая некоторые идеи из Жолт Botykai и Марк Biek:

:%s:<input\(.* id="\([^"]*\)".*\) />:<input \1 value="<?php echo $data['\2']; ?> />:g 
4

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

Это одна линия. HTH.

+0

Я не вижу, как это работает не только для конкретного случая «riskRating» – 2008-09-23 19:55:36

+0

О, тогда проблема не была точно указана. Обновление ответа. – 2008-09-23 19:57:24

+0

«Помните, что я хочу сделать это до почти 100 полей. Я стараюсь избегать перехода в каждое поле, вставляя в код PHP и изменяя имя переменной вручную». – 2008-09-23 19:58:50

2

Я сделал это так. Я не уверен, как избежать этого, чтобы работать в vim. Я буду править, если я могу понять это

Это поиск часть регулярного выражения:

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

Это заменить часть:

<input \1 id="\2" \3 value="<?php echo $data['\2']; ?>" /> 
-1

шаг 1: поиск типа CHAINE = "текст":

/type="text" 

Проверьте, что все нужные вам строки пойманы. шаг 2: Subsitute с разыскиваемым строки:

:%s//type="text" value="<?php echo $data riskrating]; ?>"/g 

шаг 3: Будьте счастливы!