Posso usar RegEx e VI (ou algo similar) para preencher automaticamente algum texto para mim?
Pergunta
NOTA: Não estou definir sobre a utilização VI, é apenas a primeira coisa que me veio à mente que pode ser capaz de fazer o que eu preciso. Sinta-se livre para sugerir qualquer outro programa.
Eu tenho um formulário com cerca de 100 campos que gostaria de auto-preenchimento com PHP. Eu sei como fazer o preenchimento automático, mas eu gostaria de evitar manualmente adicionando o texto necessário para 100 campos.
Existe uma maneira automatizada eu posso levar o texto:
<input name="riskRating" id="riskRating" type="text" />
e alterá-lo para:
<input name="riskRating" id="riskRating" type="text" value="<?php echo $data['riskRating']; ?>" />
Lembre-se que eu estou querendo fazer isso a quase 100 campos. Estou tentando evitar ir a cada campo, colando no código PHP e mudando o nome da variável manualmente.
Eu estou esperando que alguns VI guru lá fora sabe fora do topo de seu / sua cabeça.
Solução
Como tirar algumas idéias de Zsolt Botykai e Mark Biek:
:%s:<input\(.* id="\([^"]*\)".*\) />:<input \1 value="<?php echo $data['\2']; ?> />:g
Outras dicas
:%s:\(<input name="\([^"]\+\)" id="[^"]\+" type="text" \)/>:\1value="<?php echo $data ['\2']; ?>" />:gci
Essa é uma linha. HTH.
Eu fiz isso assim. Não tenho certeza de como escapar ao trabalho no vim embora. Vou editar se eu posso descobrir isso
Esta é a parte de pesquisa do regex:
<input (.*) id="(.*?)" (.*) />
Esta é a parte substituir:
<input \1 id="\2" \3 value="<?php echo $data['\2']; ?>" />
Passo 1: procurar o tipo chaine = "text":
/type="text"
Verifique se todas as cordas que você quer são capturados. Passo 2: Subsitute com a corda queria:
:%s//type="text" value="<?php echo $data riskrating]; ?>"/g
Passo 3: Seja feliz