我可以使用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 9月. 082008-09-23 20:40:22


4

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

这是一条线。 HTH。

  0

我不明白这是如何工作的不仅仅是“riskRating” 23 9月. 082008-09-23 19:55:36

  0

的具体情况哦,那么问题并没有明确说明。更新答案。 23 9月. 082008-09-23 19:57:24

  0

“请记住,我希望将其应用到近100个字段,我试图避免进入每个字段,粘贴到PHP代码中并手动更改变量名称。” 23 9月. 082008-09-23 19:58:50

  0

检查我的更新。我不是一个PHP程序员。你已经写了预期的输出,并没有提到它使用了一个“变量” - 子表达式是特定的正则表达式 - 来自原始字符串。 23 9月. 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 9月. 082008-09-23 20:06:22

  0

谢谢你的回答。你们都救了我很多烦恼。 23 9月. 082008-09-23 20:39:50


-1

第1步:搜索CHAINE类型=“text”:

/type="text" 

确认您想要的所有字符串都被捕获。 第2步:替补多与期望字符串:

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

第3步:要快乐!