هل تعلم أنه يمكنك اكتشاف ما إذا كانت السلسلة تنتهي بحرف معين أو إذا كانت تبدأ بسلسلة في PowerShell؟ شارك Thomas Rayner من قبل على CANITPRO.NET كيف يمكن القيام بذلك بسهولة من خلال استخدام تعبيرات منتظمة أو تعرف ببساطة أكثر باسم Regex.

الأصل في
بلوق .
النظر في الأمثلة التالية:
'something\' -match '\\$' #returns true 'something' -match '\\$' #returns false '\something' -match '^\\' #returns true 'something' -match '^\\' #returns false
في المثالين الأولين ، يتحقق البرنامج النصي من نهايات السلسلة لمعرفة ما إذا كانت تنتهي بخط مائل عكسي. في المثالين الأخيرين ، يتحقق البرنامج النصي من السلسلة لمعرفة ما إذا كان سيبدأ بواحد.
نمط regex الذي يتم مطابقته في الأولين هو \\ $. ما هذا يعني؟ حسنًا ، الجزء الأول \\ يعني "شرطة مائلة للخلف" (لأن \ هي شخصية هروب ، فنحن في الأساس نهرب من شخصية الهروب. الجزء الأخير $ هو إشارة لنهاية السطر. على نحو فعال ما لدينا هو "أي شيء على الإطلاق ، حيث آخر شيء على الخط هو شرطة مائلة للخلف "وهو بالضبط ما نبحث عنه.
في المثالين الثانيين ، قمت فقط بنقل \\ إلى بداية السطر وبدأت بـ ^ بدلاً من النهاية بـ $ لأن ^ هي إشارة بداية السطر.
الآن يمكنك أن تفعل أشياء مثل هذا:
$dir = 'c:\temp' if ($dir -notmatch '\\$') { $dir += '\' } $dir #returns 'c:\temp\'
هنا ، يتحقق البرنامج النصي لمعرفة ما إذا كانت السلسلة "الدببة" تنتهي بخط مائل عكسي ، وإذا لم يحدث ذلك ، فأنا أقوم بإلحاق واحد.