ماذا تفعل $ {#$ {(s ٪٪) string // ( ٪ ([kf1] |) {*} | ٪ [bbkf])}}
سؤال
لقد وجدت هذا في موجه 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
ثم أضيع.
لا تنتمي إلى StackOverflow