Могу ли я использовать RegEx и VI (или что-то подобное) для автозаполнения текста?
Вопрос
ПРИМЕЧАНИЕ:Я не собираюсь использовать 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 знает это наизусть.
Решение
Взяв некоторые идеи у Жолта Ботыкая и Марка Биека:
:%s:<input\(.* id="\([^"]*\)".*\) />:<input \1 value="<?php echo $data['\2']; ?> />:g
Другие советы
:%s:\(<input name="\([^"]\+\)" id="[^"]\+" type="text" \)/>:\1value="<?php echo $data ['\2']; ?>" />:gci
Это одна линия.ХТХ.
Я сделал это вот так.Однако я не уверен, как избежать этого, чтобы работать в 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 :Будь счастлив !