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

شكرًا لك على ترجمة MSP ،
Lev Bulanov .
النظر في الأمثلة التالية:
'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\'
يتحقق النص هنا إذا كان خط "الدببة" ينتهي بخط مائل عكسي ، وإذا لم يكن كذلك ، فسأضيفه.