Tôi có thể sử dụng RegEx và VI (hoặc một cái gì đó tương tự) để tự động điền một số văn bản cho tôi không?


6

LƯU Ý: Tôi không được thiết lập bằng cách sử dụng VI, nó chỉ là điều đầu tiên mà đến với tâm trí mà có thể có thể làm những gì tôi cần. Vui lòng đề xuất bất kỳ chương trình nào khác.

Tôi có biểu mẫu với gần 100 trường mà tôi muốn tự động điền bằng PHP. Tôi biết cách thực hiện tự động điền, nhưng tôi muốn tránh thêm văn bản cần thiết vào 100 trường theo cách thủ công.

Có một cách tự động tôi có thể lấy text:

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

và thay đổi nó để:

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

Hãy nhớ rằng tôi muốn làm điều này với gần 100 lĩnh vực. Tôi đang cố gắng tránh đi đến từng lĩnh vực, dán trong mã PHP và thay đổi tên biến bằng tay.

Tôi hy vọng một số guru VI ra khỏi đó biết ra khỏi đỉnh đầu của mình.

5

Lấy một số ý tưởng từ Zsolt Botykai và Mark Biek:

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

Cảm ơn bạn đã trả lời. Y'all đã cứu tôi nhiều phiền toái. 23 sep. 082008-09-23 20:40:22


4

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

Đó là một dòng. HTH.

  0

Tôi không thấy cách tính năng này hoạt động nhiều hơn chỉ là trường hợp cụ thể là "riskRating" 23 sep. 082008-09-23 19:55:36

  0

Ồ, sau đó sự cố không được chỉ định chính xác. Cập nhật câu trả lời. 23 sep. 082008-09-23 19:57:24

  0

"Hãy nhớ rằng tôi muốn làm điều này với gần 100 trường. Tôi đang cố gắng tránh đi tới từng trường, dán vào mã PHP và thay đổi tên biến theo cách thủ công." 23 sep. 082008-09-23 19:58:50

  0

Kiểm tra cập nhật của tôi. Tôi không phải là lập trình viên PHP. Và bạn đã viết kết quả mong đợi, và không đề cập rằng nó sử dụng một "biến" - biểu hiện con được regexp cụ thể - từ chuỗi gốc. 23 sep. 082008-09-23 20:08:09


2

tôi đã làm nó như thế này. Tôi không chắc chắn làm thế nào để thoát khỏi nó để làm việc trong vim mặc dù. Tôi sẽ sửa nếu tôi có thể hình dung nó ra

Đây là phần tìm kiếm của regex:

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

Đây là thay thế một phần:

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

Tốt hơn tôi. :% s: <input \ (. * \) id = "\ ([^"] * \) "\ (. * \) />: <đầu vào \ 1 id =" \ 2 "\ 3 giá trị =" < ? php echo $ data ['\ 2']; ?> "/>: g 23 sep. 082008-09-23 20:06:22

  0

Cảm ơn bạn đã trả lời. Bạn đã cứu tôi nhiều phiền toái. 23 sep. 082008-09-23 20:39:50


-1

bước 1: tìm kiếm các loại CHAINE = "văn bản":

/type="text" 

Xác minh rằng tất cả các chuỗi bạn muốn bị bắt. bước 2: Đăng ký với chuỗi mong muốn:

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

bước 3: Hãy hạnh phúc!