كيف يمكنك استخدام المراجع الخلفية لـ PCREs في PHP؟

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

  •  08-06-2019
  •  | 
  •  

سؤال

انا اقرأ هذا صفحة PHP RegEx, ، ولكن إما أنني أفتقد شيئًا ما، أو أخطئ في قراءة شيء ما، أو أن الأمر لا يعمل بالطريقة التي يقولونها.أظن أنه واحد من الأولين.

$str = preg_replace("([|]\d*)", "\1;", $str);
هل كانت مفيدة؟

المحلول

يجب أن يتبع تعبيرك العادي بناء جملة Perl، مما يعني أنه يجب أن يبدأ وينتهي بنفس الحرف (مع بعض الاستثناءات).أيضًا، يجب أن يبدأ المرجع الخلفي بشرطة مائلة مزدوجة، للتغلب على الهروب المزدوج في PHP.يجب أن يعمل هذا (مع اختبار سريع):

$str = "asdfasdf |123123 asdf iakds |302 asdf |11";
$str = preg_replace("/([|]\d*)/", "\\1;", $str);
echo $str; // prints "asdfasdf |123123; asdf iakds |302; asdf |11;"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top