ماذا تفعل $ {#$ {(s ٪٪) string // ( ٪ ([kf1] |) {*} | ٪ [bbkf])}}

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

  •  20-09-2019
  •  | 
  •  

سؤال

لقد وجدت هذا في موجه Adam2 Zsh ، وليس لدي أي فكرة عما يعنيه. يبدو أنه يحسب طول "السلسلة" ، ولكن كيف يفعل ذلك خارج عني.

${#${(S%%)string//(\%([KF1]|)\{*\}|\%[Bbkf])}}
هل كانت مفيدة؟

المحلول

لقد غوغل "ZSH Form Regex" ، ووجدت هذه. يقول $# يحسب طول المحتويات. يحتوي هذا الرابط أيضًا على معلومات أكثر من دليل مستخدم ZSH وجدت.

نصائح أخرى

يحسب نمطك طول السلسلة بعد تجريد بعض تنسيق أحرف طراز ANSI.

تقريبًا:

  • ${# } - الطول

  • ${ } - متداخل

  • (S%%) - Search Substrings بدءًا من النهاية

  • // - بديل على مستوى العالم (في هذه الحالة حذف ، نظرًا لعدم وجود مائل لاحقًا)

  • ( ) - مجموعة الالتقاط

  • \% - علامة في المئة الحرفي

  • [KF1] - قائمة الأحرف: k = بدء لون الخلفية ، f = ابدأ اللون الأمامي

  • [Bbkf] - قائمة الأحرف: B = BEGIN BOLD ، B = END BOLD ، K = END BECTRACTER

ثم أضيع.

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