Могу ли я использовать RegEx и VI (или что-то подобное) для автозавершения некоторого текста для меня?


6

ПРИМЕЧАНИЕ: Я не настроен на использование 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 
  0

Спасибо за ответы. Я очень сильно обидел меня. 23 сен. 082008-09-23 20:40:22


4

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

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

  0

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

  0

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

  0

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

  0

Проверьте мое обновление. Я не программист на PHP. И вы написали ожидаемый результат, и не упоминали, что он использует «переменную» - подвыражение, чтобы быть регексом конкретным - из исходной строки. 23 сен. 082008-09-23 20:08:09


2

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

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

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

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

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

Это лучше, чем у меня. :% s: <input \ (. * \) id = "\ ([^"] * \) "\ (. * \) />: <input \ 1 id =" \ 2 "\ 3 value =" < ? php echo $ data ['\ 2']; ?> "/>: g 23 сен. 082008-09-23 20:06:22

  0

Благодарим вас за ответы. Я избавил меня от досады. 23 сен. 082008-09-23 20:39:50


-1

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

/type="text" 

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

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

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