كيف يمكنني استبدال مطابقة التعبير العادي ورسم خريطة للبدائل في بيرل؟

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

  •  05-07-2019
  •  | 
  •  

سؤال

وأي بمعنى:.

echo H#97llo | MagicPerlCommand

والمعياري:

Hallo

وكانت MagicPerlCommand هو شيء من هذا القبيل

perl -pnle "s/#(\d+)/chr(\1)/ge"

(ولكن هذا لا يعمل).

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

المحلول

تغيير \1 إلى $1 في MagicPerlCommand الخاص بك. النمط \digit backreference لا ر العمل عندما يتم تقييم التعبير البديل (أي s///e).

والتي عملت بالنسبة لي على ويندوز ولينكس.

نصائح أخرى

j_random_hacker الجواب، يجب عليك استخدام $1 بدلا من \1.

وهذا هو لاستخدام "/e" التعديل إلى التعبير المعتاد يعني الحق في نصف اليد هو مجرد بيرل تعبير آخر عادي، وليس إجراء تبديل رجإكس. لأنه بيرل، كنت قد حصلت على استخدام بناء جملة بيرل للمرجعية قوس، وليس بناء الجملة رجإكس المعتاد.

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