هل يمكنني استخدام RegEx وVI (أو شيء مشابه) لملء بعض النصوص تلقائيًا؟

StackOverflow https://stackoverflow.com/questions/123334

  •  02-07-2019
  •  | 
  •  

سؤال

ملحوظة:أنا لست مستعدًا لاستخدام 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 هناك من أعلى رأسه.

هل كانت مفيدة؟

المحلول

أخذ بعض الأفكار من Zsolt Botykai وMark Biek:

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

نصائح أخرى

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

هذا سطر واحد.هث.

لقد فعلت ذلك مثل هذا.لست متأكدًا من كيفية الهروب منه للعمل في vim بالرغم من ذلك.سأقوم بالتحرير إذا كان بإمكاني معرفة ذلك

هذا هو جزء البحث من regex:

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

هذا هو الجزء البديل:

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

الخطوة 1 :ابحث في نوع السلسلة = "نص" :

/type="text"

تأكد من أن كافة السلاسل التي تريدها قد تم التقاطها.الخطوة 2 :استبدل بالسلسلة المطلوبة:

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

الخطوه 3 :كن سعيدا !

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top