سؤال

أرغب في مطابقة واستخلاص المتغيرات من: {{variable:int}}

  • عامل سيكون أي شيء من الألف إلى الياء
  • : هو فاصل
  • إتجاه سيكون عدد صحيح 0-9

من curretly لدي: preg_replace('!\{\{(\S+)\}\}!', "$1", $string)الذي يفعل فقط نصف الوظيفة، لا يزال يتعين علي تقسيم :.

شكرا لك!

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

المحلول

إذا كنت ترغب في استخراج الاسم / القيمة، أعتقد أنك تريد استخدام Preg_Match.

preg_match('!\{\{(.*?):(\d)\}\}!', $string, $matches);  
$varname = $matches[1];  
$val = $matches[2];  

نصائح أخرى

تحتاج إلى أ غير الجشع تطابق (.*?): preg_replace('!\{\{(.*?):(\d)\}\}!')

يستخدم

{{([a-zA-Z]+):(\d+)}}

سيتم احتواء $ 1 على المتغير الملتقط، وسوف تحتوي $ 2 على عدد صحيح تم الاستيلاء عليها

تفسير

{{([a-zA-Z])+:(\d+)}}

A-ZA-Z] + يعني أتلست ألف أبجدية أخرى (صغيرة أو قبعات)
متبوعة ب ":"
تليها أطلس واحد أو أكثر من الأرقام (0-9)

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