Bazı metni otomatik olarak doldurmak için RegEx ve VI'yı (veya benzer bir şeyi) kullanabilir miyim?


6

NOT: VI kullanarak ayarlı değilim, sadece ihtiyaç duyduğum şeyi yapabilen akla ilk gelen şey. Başka bir program önermek için çekinmeyin.

PHP ile otomatik doldurmak istediğim yaklaşık 100 alana sahip bir formum var. Otomatik doldurmayı nasıl yapacağımı biliyorum, ancak gerekli metni 100 alana elle eklemekten kaçınmak istiyorum.

ben metin alabilir otomatik bir yolu var mı:

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

ve değiştirmek için: Neredeyse 100 alanlara bunu yapmak isteyen pm unutmayın

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

. Her alana gitmekten, PHP koduna yapışmayı ve değişken adını el ile değiştirmekten kaçınmaya çalışıyorum.

Bazı VI gurunun kafasının üstünden haberi olduğunu umuyorum.

5

:

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

Cevaplar için teşekkür ederiz. Beni çok rahatsız ettiniz. 23 eyl. 082008-09-23 20:40:22


4

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

bir çizgidir bu. HTH. Zsolt Botykai ve Mark Biek gelen bazı fikirler alarak

  0

Bunun, yalnızca "risk alma" 23 eyl. 082008-09-23 19:55:36

  0

Oh özel durumundan daha fazlası için nasıl çalıştığını göremiyorum, sorun tam olarak belirtilmemiştir. Cevabın güncellenmesi. 23 eyl. 082008-09-23 19:57:24

  0

"Bunu neredeyse 100 alana yapmak istediğimi unutmayın. Her alana gitmekten, PHP koduna yapışıp değişken adını el ile değiştirmekten kaçınmaya çalışıyorum." 23 eyl. 082008-09-23 19:58:50

  0

Güncellememi kontrol et. Ben bir PHP programcısı değilim. Ve beklenen çıktıyı yazmıştınız ve orijinal dizgeden regexp spesifik olması için bir "değişken" - alt-ifade kullandığından bahsetmediniz. 23 eyl. 082008-09-23 20:08:09


2

böyle yaptım. Vim içinde çalışmak için nasıl kaçacağından emin değilim.

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

Bu değiştirin parçasıdır:

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

Bu benimkinden daha iyi. :% s: <input \ (. * \) id = "\ ([^"] * \) "\ (. * \) />: <input \ 1 id =" \ 2 "\ 3 value =" < ? php echo $ data ['\ 2']; ?> "/>: g 23 eyl. 082008-09-23 20:06:22

  0

Cevaplar için teşekkür ederim. Beni çok rahatsız ettiniz. 23 eyl. 082008-09-23 20:39:50


-1

1. adım: chaine türünü aramak Ben bu regex arama parçasıdır

onu anlamaya miyim düzenlemek edeceğiz = "text":

/type="text" 

istediğiniz tüm dizeleri yakalanmış olduğundan emin olun. İstenen dize ile subsitute: adım 2

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

adım 3: Mutlu olun!