كيف تبدأ في استخدام Regex مع تطبيق الاختصارات

click fraud protection

على مدار الشهر الماضي أو نحو ذلك ، كنت أغطي تطبيق الاختصارات وتطبيقات Automator على نظامي التشغيل iOS و macOS ، على التوالي. كلاهما يعتبر من مراكز القوة عندما يتعلق الأمر بالأتمتة في نظام Apple البيئي ، وبدءًا من macOS Monterey هذا الخريف ، سيكون تطبيق Shortcuts هو تطبيق التشغيل الآلي على جميع أجهزة Apple. لهذا السبب أردت قضاء هذه المقالة في مناقشة موضوع قوي للغاية: استخدام regex مع تطبيق Shortcuts.

على الرغم من أنني أمتلك بعض الخلفية في علوم الكمبيوتر والبرمجة ، إلا أنني بطريقة ما لم أصادف التعبير المعتاد. ربما أخافني الاسم ، أو ربما كان الرمز ، وهو من أقل الرموز التي رأيتها قابلية للقراءة على الإطلاق.

مهما كان الأمر ، فقد قررت البحث عن المزيد في regex بعد تغطية تطبيق Shortcuts خلال الأشهر القليلة الماضية. وما اكتشفته هو أن الكثير من القيود التي كنت أواجهها مع الاختصارات ، بالإضافة إلى Automator ، يمكن التغلب عليها باستخدام regex.

بعبارة أخرى ، لم يكن الأمر أن هذه التطبيقات كانت تفتقر إلى الميزات ، لكنني كنت أفتقر إلى التعليم.

لذا في منشور اليوم ، سنتعلم أنا وأنت مداخل ومخارج regex معًا. بهذه الطريقة ، يمكنك تحقيق أقصى استفادة من كل تطبيق من هذه التطبيقات.

سنغطي أساسيات regex (بدءًا بما هو عليه) وما يمكنك فعله به في تطبيق Shortcuts وبعض مواقع الويب و الموارد التي يمكنك استخدامها إذا كنت لا ترغب في تعلم regex بنفسك ، ثم ندخل في المفاهيم الأساسية وآليات regex لغة.

حسنًا ، فلنبدأ!

محتويات

  • ما هي التعبيرات العادية (أي ، regex)؟
    • الأشياء التي يمكنك فعلها باستخدام regex
  • كيف يمكنك استخدام regex مع تطبيق Shortcuts؟
  • استخدم regex101.com لاختبار التعبيرات العادية
  • إذا كنت لا تريد معرفة كيفية استخدام regex مع تطبيق Shortcuts ، فاقرأ هذا
  • Regex للمبتدئين: ابدأ في استخدام regex مع الاختصارات
    • ما هي نكهات ريجكس؟
    • مواقع الويب والمراجع لمساعدتك في بدء تعلم regex باستخدام الاختصارات
    • كيفية إجراء بحث أساسي عن النص باستخدام regex مع الاختصارات
    • إضافة مكونات متغيرة إلى عمليات بحث regex الخاصة بك
    • يمكن أن توسع نطاقات البحث الخاص بك
    • كيفية استبعاد الكلمات والأحرف من عمليات بحث regex باستخدام الاختصارات
    • يمكن أن توفر لك أحرف البدل المزيد من خيارات البحث
    • استخدم المحددات لتحديد طول النص الذي تبحث عنه
    • هناك عدد قليل من المحددات الكمية التي تريد أن تعرف عنها
    • ابحث عن الأحرف في بداية سلسلة النص ونهايتها
    • تخزين السلاسل النصية باستخدام وظيفة التجميع للتعبير العادي باستخدام الاختصارات
  • ماذا الآن؟
    • كيف يمكنك تقسيم هذا؟
  • ابدأ في استخدام regex مع الاختصارات للانتقال بالأتمتة إلى المستوى التالي
    • المنشورات ذات الصلة:

ما هي التعبيرات العادية (أي ، regex)؟

التعبير العادي ، أو "regex" ، هو جزء من التعليمات البرمجية التي يمكنك استخدامها للبحث عن جزء من النص داخل جزء أكبر من النص.

في حالة عدم معرفتك ، يُطلق على جزء من النص داخل جزء آخر من النص "سلسلة" في البرمجة. على سبيل المثال ، كلمة "أخضر" هي سلسلة من الأحرف من النص "لقد ارتديت بنطالًا أخضر اليوم".

لذلك بعبارة أخرى ، Regex هي طريقة لتحديد موقع سلسلة نصية في نص أكبر. ونظرًا لأن regex مكتوب في كود ، يمكنك استخدامه لأداء بعض العمليات المعقدة جدًا.

على سبيل المثال ، إذا كنت تريد البحث عن كلمة "بريد إلكتروني" ، فيمكنك بسهولة كتابة رمز regex يبحث عن البريد الإلكتروني.

إذا كنت تريد العثور على بريد إلكتروني موجود داخل فقرة ، ولا تعرف بالضبط ما هو هذا البريد الإلكتروني ، فسيلزمك البحث عن سلسلة نصية منسقة مثل رسالة بريد إلكتروني. على سبيل المثال ، سلسلة تتبع "[بريد إلكتروني محمي]" صيغة.

الآن ، لنفترض أنك لا تريد فقط العثور على بريد إلكتروني واحد من فقرة ولكن كل البريد الإلكتروني. ربما تريد نسخها بسرعة في مكان آخر ، أو تحديثها إلى تنسيق جديد ، أو استبدالها بحيث يقولوا جميعًا "[بريد إلكتروني محمي]“.

كلما ازدادت مهارتك وخبراتك في استخدام regex ، ستتمكن من تنفيذ كل هذه الأشياء والمزيد.

الأشياء التي يمكنك فعلها باستخدام regex

حسنًا ، لذلك ربما لم تكن الأمثلة مع البريد الإلكتروني التي قدمتها للتو عملية. لا تقلق - فهذا بعيد كل البعد عن حد ما يمكنك إنجازه باستخدام regex مع تطبيق Shortcuts.

بشكل عام ، كل ما يمكن أن يفعله regex يقع في إحدى هذه الفئات الأربع:

  1. ابحث عن سلسلة نصية في جزء أكبر من النص (على سبيل المثال ، البحث عن كلمة / سلسلة / نوع سلسلة في صفحة نصية).
  2. تأكد من أن سلسلة نصية تطابق التنسيق الذي تريده (على سبيل المثال ، التحقق من أن سلسلة النص مكتوبة بأحرف كبيرة / مرتبة / مرقمة بشكل صحيح).
  3. استبدل أو أدخل نصًا في منطقة معينة من جزء من النص.
  4. قسّم سلسلة نصية في نقاط محددة (على سبيل المثال ، قسّم جزءًا من النص في كل مرة توجد فيها فاصلة).

إن مستوى العمق الذي يمكنك استخدامه للتفاعل مع كل من هذه الأنواع من الوظائف وكيف يمكنك دمجها يجعل من regex أداة قوية بشكل لا يصدق لتحليل النص ومعالجته.

كيف يمكنك استخدام regex مع تطبيق Shortcuts؟

حسنًا ، نأمل الآن أن يكون لديك فكرة أساسية عن الغرض من استخدام regex. إنه نوع من الشفرة يمكنك استخدامه للبحث عن نص ، حتى إذا كنت لا تعرف بالضبط ما هو هذا النص.

إذن كيف يساعدك هذا في الاختصارات؟ على غرار إضافة البرمجة النصية إلى الاختصارات ، إنها طريقة للانتقال من الأتمتة الأساسية (راسلني عندما يفتح الباب الأمامي) إلى خيارات أكثر تقدمًا (إنشاء حدث تقويم تلقائيًا لاجتماعاتي في كل مرة أحصل فيها على بريد إلكتروني لاجتماع Zoom من العمل).

يمكنك استخدام regex مع الاختصارات للتحقق من صحة الإدخال. على سبيل المثال ، إذا قمت بإنشاء اختصار لا يعمل إلا مع عناوين URL ، فيمكنك استخدام regex في بداية الاختصار للتأكد من أن المستخدم يقوم بتشغيل الأتمتة على عنوان URL.

يمكنك دمج regex مع البرمجة النصية لإنشاء اختصارات قوية. على سبيل المثال، هذا الاختصار يستخدم regex والبرمجة النصية لتحويل الرمز الشريطي إلى عنوان URL لمتجرك المفضل.

عند استخدام تطبيق Shortcuts على نظام Mac (خريف 2021) ، يمكنك استخدام regex لتنفيذ إجراءات مجمعة على جزء من النص. على سبيل المثال ، يمكنك نسخ جميع رسائل البريد الإلكتروني في نص محدد كقائمة مرتبة. أو يمكنك استبدال جميع الأسماء في مستند بأحرف "*" لضمان الخصوصية.

يمكنك حتى نسخ نص من أحد التطبيقات ، وإعادة تنسيقه لمطابقة تفضيلات تطبيق آخر ، ثم لصقه في هذا التطبيق الآخر ، كل ذلك بنقرة واحدة بزر الماوس الأيمن.

بمعنى آخر ، يمنحك regex تحكمًا كاملاً في معالجة النص باستخدام تطبيق Shortcuts. قد لا يبدو هذا مفيدًا جدًا في البداية ، ولكن الآن بعد أن عرفت أنه موجود ، ستبدأ بالتأكيد في ملاحظة عدد الاختصارات التي يمكن تحسينها بواسطة هذه الميزة. وستلاحظ أيضًا أن الكثير من الاختصارات غير ممكن حتى بدون regex.

استخدم regex101.com لاختبار التعبيرات العادية

بمجرد أن تبدأ في استخدام regex مع الاختصارات ، ستواجه نقطة إحباط:

من الصعب حقًا اختبار رمز regex الخاص بك. وهذا ليس فريدًا في regex. اختبار أي شيء باستخدام تطبيق Shortcuts هو نوع من الألم. الطريقة الوحيدة للقيام بذلك هي تشغيل الاختصار. هذه الطريقة ليست سيئة عندما تختبر فقط ميزات الاختصارات المضمنة.

ولكن بالنسبة لاختبار الشفرة ، لا يسمح هذا بالتحقق سطرًا بسطر ولا يقدم الكثير من التعليقات.

لذلك ، أوصي باستخدام regex101.com. إنه موقع يمكنك كتابة رمز regex فيه في الوقت الفعلي. يمكنك أيضًا كتابة نص في محرر نصوص على نفس صفحة الويب. أثناء كتابة كل منها ، سترى ما إذا كان التعبير العادي الخاص بك يعمل ، وسبب عمله أو لا يعمل ، وستحصل على معلومات حول التطابقات التي تم العثور عليها.

يستخدم regex101.com نكهة مختلفة من regex عن تلك التي تدعمها الاختصارات (المزيد عن ذلك في دقيقة واحدة) ، ولكنه قريب بما يكفي بحيث لا يجب أن تواجه الكثير من المشكلات.

يعد استخدام هذه الأداة أمرًا رائعًا لأنه يمكنك كتابة regex هناك أولاً ، ثم نسخه في تطبيق Shortcuts بمجرد أن يعمل على النحو المنشود.

إذا كنت لا تريد معرفة كيفية استخدام regex مع تطبيق Shortcuts ، فاقرأ هذا

لقد فهمت - لن يرغب الجميع في تعلم كيفية استخدام regex مع الاختصارات. إنها مهارة ، وهذا يعني أنها ستتطلب وقتًا وممارسة. إنه قريب من البساطة مثل باقي ميزات السحب والإفلات لتطبيق Shortcuts.

لا داعى للقلق! على الرغم من أنك لن تكون قادرًا على الاستفادة من تطبيق Shortcuts بنفس القدر الذي يستفيد منه أي شخص يخصص الوقت لتعلم regex ، فلا تزال هناك خيارات متاحة لك. وبالتحديد ، هناك مواقع وصفحات على الإنترنت حيث أنشأ الأشخاص قائمة بدغات أكواد regex التي يمكنك نسخها ولصقها في تطبيق Shortcuts.

إليك بعض الروابط التي يمكنك التحقق منها إذا كنت لا تريد تعلم التعبير العادي:

  • https://www.shortcutfoo.com/app/dojos/regex/cheatsheet
  • https://www.reddit.com/r/shortcuts/comments/9zo24n/regex_cookbook_for_shortcuts_reusable_regex_to/
  • https://www.reddit.com/r/shortcuts/comments/b5labq/match_text_examples_for_the_beginner_a_regex/
  • http://www.rexegg.com/regex-cookbook.html

ما عليك سوى قراءة هذه الروابط وستتمكن من العثور على حلول regex مشتركة للاختصارات التي تريد إنشاءها. لن يكون هذا خيارًا خاليًا من التعليم ، حيث سيستغرق الأمر بعض الوقت للتعرف على ما تبحث عنه. ولكنه أبسط بكثير وهو حل مثالي لشخص ليس لديه الوقت لوضعه في regex.

بعد قولي هذا ، يجب أن أعترف بأن تعلم regex ليس صعبًا للغاية ، خاصة إذا كان لديك بعض الخبرة في كود shell أو برمجة المبتدئين. بدا Regex وكأنه رطانة بالنسبة لي في البداية ، ولكن بعد ساعة من قراءة المقالات واللعب باستخدام regex101.com ، تمكنت من البدء في كتابة regex لاختصاراتي.

إنه مجرد شيء مألوف - بعد أن تنظر إليه لفترة كافية ، سوف يتوقف عن أن يبدو غريبًا جدًا. لذا ، إذا كان لديك الوقت وشعرت بالخوف ، فلا تقلق!

Regex للمبتدئين: ابدأ في استخدام regex مع الاختصارات

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

يوجد الكثير من المحتوى أدناه ، ولكن لا داعي للقلق! ستكون هذه المقالة أكثر من دليل دراسة. أوصي بالقراءة على كل قسم حتى تحصل على فكرة عن الآليات التي يستخدمها regex. من المفترض أن يساعدك هذا أيضًا في الالتفاف حوله أيضًا ، إذا كنت لا تزال مرتبكًا بشأن ماهية التعبير العادي.

بمجرد قراءة الأشياء ، أوصي بفتح regex101.com واللعب بكل أداة من الأدوات في كل قسم أدناه. سيساعدك ذلك في معرفة كيف تبدو المفاهيم في الممارسة وكذلك تحسين ذاكرتك. بعد الانتهاء من ذلك ، يمكنك فقط التعامل مع هذه المقالة كنقطة مرجعية - شيء يمكنك العودة إليه عندما تنسى البتات والتعبيرات في regex.

حسنًا ، لنبدأ!

ما هي نكهات ريجكس؟

أولاً ، سنلقي نظرة على نكهات regex. لا تقلق - لن يؤثر هذا على استخدامك اليومي للتعبير العادي باستخدام الاختصارات. إنه مجرد شيء يجب أن تكون على دراية به قبل أن تبدأ.

هناك إصدارات مختلفة من regex تُعرف باسم "النكهات". هذه الإصدارات المختلفة لا تزال متشابهة للغاية. إذا كنت تستطيع تعلم قراءة وكتابة نكهة واحدة ، فيجب أن تكون قادرًا على قراءة أي منها. ستكون هناك اختلافات طفيفة في كيفية تنسيق كود regex الخاص بك.

في البرمجة ، تُعرف تفاصيل التنسيق هذه باسم "بناء الجملة". إنها فقط الطريقة التي يجب أن تكتب بها الكود الخاص بك لكي يفهم التطبيق الذي تكتبه فيه.

إليكم سبب أهمية بناء الجملة

"مرحبًا يا صديقي ، كيف يسير يومك؟"

"، هل ستذهب يا صديقي؟ يوم مرحبًا كيف "

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

في الترميز ، قد تفهم إحدى لغات البرمجة الإصدار الأول ولكن ليس الإصدار الثاني. مع ذلك ، بالنسبة إلى لغة برمجة أخرى ، قد يكون للغة الثانية معنى كامل بينما تبدو اللغة الأولى مثل gibberish. ومع ذلك ، فبالنسبة لشخص يتحدث الإنجليزية ، يمكنك على الأرجح فهم نية كلا السطرين ، على الرغم من أن المرء سيأخذ القليل من العمل للحصول على المعنى.

هذا (نوعًا ما) يشبه النكهات المختلفة للتعبير العادي. سيبدو كل منهم مختلفًا بعض الشيء ومشابهًا لك بعض الشيء. ولكن يجب أن تستخدم النكهة المناسبة للتطبيق الذي تستخدمه ، وإلا فلن يكون لدى هذا التطبيق أي دليل على ما كتبته.

يتعرف تطبيق Shortcuts على نكهة ICU للتعبير العادي ، لذا فهذه هي النكهة التي سترغب في استخدامها. يحتوي موقع regex101.com على بعض النكهات المختلفة التي يمكنك الاختيار من بينها على يسار الصفحة. إنه يستخدم PCRE ، رغم ذلك ، وهو مشابه جدًا لوحدة العناية المركزة.

من المهم أن تعرف أن هناك نكهات مختلفة للتعبير العادي لأنك بلا شك ستواجه نكهات مختلفة عبر الإنترنت. إذا وجدت القليل من regex تريد سرقته ولكن لا يمكنك جعله يعمل مع الاختصارات ، أو أنه لا يبدو صحيحًا ، فتحقق من النكهة المكتوبة فيه!

مواقع الويب والمراجع لمساعدتك في بدء تعلم regex باستخدام الاختصارات

هناك شيء آخر أريد تغطيته قبل أن نبدأ في استكشاف الآليات الفعلية لكتابة regex وهو الموارد. أنا لا أدعي بأي حال من الأحوال أن هذا المنشور هو مصدر شامل لتعلم regex. من المفترض أن تكون نقطة بداية مفيدة لأولئك الذين يريدون استخدام regex مع الاختصارات.

إذا كنت تريد التعمق أكثر في التعبير العادي أو تشعر أن هذه المقالة لا تقدم لك المساعدة التي تحتاجها ، فيمكنك الاطلاع على بعض هذه المقالات والأدلة والأدوات:

  • https://regex101.com - موقع ويب يتيح لك اختبار رمز regex الخاص بك في الوقت الفعلي.
  • https://www.shortcutfoo.com/app/dojos/regex/cheatsheet - ورقة الغش عندما تنسى ما تفعله كل شخصية
  • http://www.rexegg.com - هذا الموقع هو مصدر شامل لتعلم كل ما تحتاج لمعرفته حول regex. تحقق من هذا إذا كنت تريد أن تصبح بارعًا في regex.
  • https://scottwillsey.com/blog/ios/regex1/ - هذه سلسلة مدونة من أربعة أجزاء حول استخدام regex مع الاختصارات. إنني أتبع نهجًا مختلفًا تمامًا عن هذا الدليل ، لذا يجب أن يصنع سلسلة مصاحبة لطيفة لهذه المقالة.
  • يعد كل من Stack Overflow و Reddit موقعين جيدين لمشاركة أسئلة regex والتقدم للحصول على المشورة والإجابات.

تختلف هذه الموارد عن تلك المدرجة في إذا كنت لا تريد معرفة كيفية استخدام regex مع تطبيق Shortcuts القسم حيث سيطلبون منك جميعًا أن تبدأ بالفعل في تعلم regex. إنها أكثر شمولاً ، في حين أن الآخرين مجرد نقاط مرجعية.

كيفية إجراء بحث أساسي عن النص باستخدام regex مع الاختصارات

على ما يرام! لقد وصلنا الآن إلى النقطة التي كان الجميع ينتظرها: سنتعلم أساسيات استخدام regex مع الاختصارات.

لنبدأ ببحث أساسي ، لأن هذا هو أبسط شيء يمكنك القيام به باستخدام regex. كما ذكرنا سابقًا ، أوصي بفتح regex101.com في علامة تبويب أخرى حتى تتمكن من المتابعة.

في أبسط صوره ، سيبحث regex عن (أو تطابق) كل ما تكتبه فيه. على سبيل المثال ، إذا كنت سأكتب على ما يرام كرمز regex الخاص بي ، سيجد كل مثيل لكلمة "حسنًا" في هذا الدليل.

الحالة ، والمسافات ، وعلامات الترقيم مهمة. هذا يعني أن على ما يرام, حسنا, على ما يرام!، و على ما يرام ، ستؤدي جميعها إلى نتائج مختلفة.

وهذا كل شيء! عندما تكتب شيئًا ما في بحث regex دون استخدام أي أحرف خاصة ، فإن التعبير العادي يطابق أي شيء يطابق تمامًا ما كتبته.

هناك صيد واحد! بعض الأحرف على لوحة المفاتيح هي أيضًا أحرف خاصة في regex. هذا يعني أنهم يؤدون نوعًا من الوظائف في كود regex.

ال ? الرمز هو أحد هذه الشخصيات. يتم استخدامه في رمز Regex كمحدد كمي. لذا إذا حاولت البحث عن "حسنًا؟" عن طريق كتابة على ما يرام؟ كشفرة regex ، فلن تحصل على ما تريد.

لإصلاح ذلك ، عليك تحديد أنك تريد استخدام "؟" كسلسلة ، وليس كحرف خاص. للقيام بذلك لهذه الشخصية أو أي شخصية أخرى ، ما عليك سوى إضافة \ قبل الحرف مباشرة الذي تريد إلغاء خصائصه الخاصة.

لذا إذا كنت تريد البحث عن "حسنًا؟" مع regex ، سيبدو الرمز الخاص بك كما يلي:

على ما يرام\؟

إذا لم تكن متأكدًا مما إذا كان يتم التعامل مع حرف معين كحرف خاص من خلال التعبير العادي ، فيمكنك التحقق ورقة الغش هذه لجميع الأحرف الخاصة في regex.

ابحث عن أكثر من كلمة باستخدام الحرف "or"

عنصر مهم آخر في البحث عن السلاسل مع regex هو استخدام وظيفة "أو". هذه شخصية يمكنك وضعها بين كلمتين / حرفين لتقول ، "تطابق هذا أو هذا".

على سبيل المثال ، إذا أردت البحث في نص نصي عن كلمة "حسنًا" و "حسنًا" ، سأستخدم | اختلاف الشخصيات. مثل ذلك:

حسنًا | حسنًا

إذا كنت تواجه صعوبة في العثور على | الشخصية ، امسك تحول مفتاح لأسفل واضغط على \ مفتاح. إنه فوق إرجاع مفتاح في معظم لوحات المفاتيح.

إضافة مكونات متغيرة إلى عمليات بحث regex الخاصة بك

حسنًا ، بعد أن تعرفت الآن على شكل التعبير العادي المحايد ، حان الوقت لاختيار أول حرف خاص لك. سيكون هذا هو الأقواس المربعة ، وهي هذه الأشياء [].

كل ما تضعه داخل هذه الأقواس سيعتبر مكونًا متغيرًا لبحث regex. يمكنك وضع العديد من الأحرف بين قوسين كما تريد ، على الرغم من أن واحدًا فقط سيكون صالحًا لكل مباراة.

حسنًا ، هذا يبدو معقدًا بعض الشيء ، لكنه ليس كذلك! هذا ما يبدو عليه في الممارسة:

  • [على ما يرام سيطابق كلمة "حسنًا" فقط. نوع من العبث.
  • [AB] ماض سيطابق كلاً من "حسنًا" و "بلرايت".
  • Alr [iouxyz] ght سيطابق "Alright" و "Alroght" و "Alrught" و "Alrxght" وهكذا.

يمكنك دمج الأحرف بين قوسين وكذلك استخدام أقواس متعددة في نفس سطر التعبير العادي. [AB] r [i1] gh [tuvwxyz] هو جزء صالح من regex. ومع ذلك ، نأمل ألا تبدو فوضوية تمامًا كما كانت قبل بضع دقائق!

يمكن أن توسع نطاقات البحث الخاص بك

الجزء التالي من regex الذي سيكون مفيدًا مع الاختصارات هو النطاق. تسمح لك النطاقات بتحديد مجموعة من الأحرف التي ستقبلها.

في القسم السابق ، ربما لاحظت أن الأقواس الخاصة بي تضمنت الكثير من الأحرف المتتالية. الأطول كان [tuvwxyz]. تظهر هذه الأحرف في الأبجدية بنفس الترتيب ، بجوار بعضها البعض.

هذا يعني أنه يمكنني استخدام نطاق بدلاً من كتابتها. سيبدو هذا كالتالي:

Alrigh [t-z]

هذا الجزء من رمز regex سيفعل نفس الشيء مثل Alrigh [tuvwxyz]. إنها أكثر إتقانًا وأسهل في الكتابة.

يمكنك استبدال نفس النطاق بـ [a-z] إذا كنت تريد أن تقبل أي حرف صغير من الأبجدية. أو يمكنك استخدام ملفات [0-9] إذا كنت ترغب في قبول أي رقم مكون من رقم واحد.

يمكنك أيضًا دمج النطاقات داخل نفس القوس. على سبيل المثال ، هذا ألر [i-ux-z] ght سيقبل “Alright” و “Alroght” و “Alrxght” و “Alryght” ، لكنه لن يقبل “Alraght” أو “Alrvght”.

بالمناسبة ، هناك أشكال أخرى لكلمة "حسنًا" التي سيقبلها هذا الرمز ، وغيرها الكثير التي لن يقبلها. هذا مجرد اختيار قصير لإبقاء الأمور قصيرة بشكل جيد.

إذا كنت تواجه صعوبة في فهم ما [i-ux-z] يعني ، قد يكون من المفيد رؤيتها مكتوبة على النحو التالي:

[i-u، x-z]

هذا ليس بنية Regex صحيحة - يجب عدم استخدام فاصلة لفصل النطاقات. لكن نأمل أن يساعد ذلك في جعله أكثر منطقية!

لا تحتاج إلى فواصل في التعبير العادي لفصل النطاقات ولا يتعين عليك وضع نطاقات بجوار بعضها البعض مباشرةً. يمكنك تغييره إلى [i-uabcx-z]. سيقبل هذا نفس النطاقات كما كان من قبل بالإضافة إلى الأحرف "أ" و "ب" و "ج".

كيفية استبعاد الكلمات والأحرف من عمليات بحث regex باستخدام الاختصارات

حسنًا ، نحن الآن بصدد الوصول إلى مكان ما! إذا كنت قد اتبعت هذه المقالة حتى هذه النقطة ، فيجب أن تكون قادرًا على إلقاء نظرة على الشفرة أدناه وفهم ما هو مطابق لها:

Ap [p-r] le [Tt] ool [BbLF] الثور

إذا كان بإمكانك قراءته ، فأنت تعلم أن هذا الجزء من رمز regex يتضمن كثيرا من الاختلافات المحتملة لكلمة "AppleToolBox". إذن ماذا لو أردنا تقليل عدد المتغيرات التي يقبلها دون تغيير نطاقنا؟

وهنا يأتي دور شخصية "not". تبدو هكذا: ^. إذا كنت تواجه صعوبة في العثور عليه على لوحة المفاتيح (كما فعلت أنا) ، فانتقل تحول واضغط على 6 على لوحة المفاتيح.

لاستخدام ال ^ الشخصية ، ضعه في بداية الشخصية التي تريد استبعادها.

هناك الصيد! ال ^ لا يعمل الحرف خارج دالة regex. لا يمكنك فقط وضعه أمام الحرف "أ" لاستبعاده من بحثك. رمز regex ^ أ سيبحث فقط عن حرف "أ".

بدلاً من ذلك ، قم بدمجه مع الأقواس والأحرف الخاصة الأخرى في regex.

على سبيل المثال ، إذا أردت البحث عن أي مثيل لكلمة "حسنًا" لا يبدأ بالحرف "أ" ، فسأستخدم الرمز [^ أ] هادئ.

يمكنك حتى دمجها مع النطاقات! ما عليك سوى وضعه في بداية قوسك ، وسيتم استبعاد أي شيء ضمن هذه الفئة ، والنطاقات المضمنة ، من البحث. مثل ذلك:

ماذا لو كنت تريد استبعاد كلمة معينة من بحثك؟

لقد واجهت صعوبة في العثور على هذه المعلومات. ومع ذلك ، كان لدى مستخدم Stack Overflow الحل ، ويبدو كالتالي:

^ (؟! (كلمة) $). + $

فقط استبدل كلمة بأي كلمة تريد استبعادها من بحثك. مثل ذلك:

يمكنك قراءة هذا المنشور Stack Overflow هنا إذا كنت تريد معرفة المزيد عن حالة الاستخدام المحددة هذه.

يمكن أن توفر لك أحرف البدل المزيد من خيارات البحث

هذا يقودنا إلى أحرف البدل. حرف البدل ، وهو فترة .، يستخدم لتمثيل أي حرف واحد ، بدون استثناء. إذا كنت تكتب فقط . باعتباره رمز regex الخاص بك مع الاختصارات ، فإنه سيعيد كل حرف في النص الأساسي كمطابقة فردية.

لا أوصي باستخدامه لهذا الغرض بالطبع! بدلاً من ذلك ، أوصي باستخدامه بدلاً من حرف واحد في الكلمة. على سبيل المثال، Alr.ght سيطابق "Alright" و "Alrxght" و "Alr

وهذا كل شيء إلى حد كبير! حرف البدل سهل الفهم. يطابق كل شيء! هذا يجعله مفيدًا في العثور على سلاسل تطابق تنسيقًا معينًا مع وجود أحرف فريدة.

رسائل البريد الإلكتروني ، على سبيل المثال ، ستبدو متشابهة إلى حد كبير دون أن تكون متشابهة. يمكن أن يساعدك حرف البدل في الجمع بين العناصر التي تعرف أنها ستكون موجودة (مثل ".com" و "@") مع أحرف لا تعرفها (مثل "my_email567" أو iCloud أو "Gmail").

حالة استخدام أخرى مثيرة للاهتمام هي استخدام . للعثور على سلاسل بطول معين.

على سبيل المثال ، إذا كنت أرغب في العثور على كل سلسلة مكونة من أربعة أحرف في نص نصي ، فيمكنني استخدامها ... بمسافة على كلا الجانبين.

وإليك جميع السلاسل المكونة من سبعة أحرف في نفس النص:

لاحظ أن هذه ليست طريقة مثالية للعثور على سلاسل بطول معين. كما ترى في الأمثلة أعلاه ، تتم مطابقة بعض السلاسل التي لا يجب أن تكون متطابقة ، وبعضها يجب أن يتم تجاهله. من المثير للاهتمام أن تتذكر أنه يمكنك استخدام . حرف لحساب الشخصيات.

أيضًا ، ضع في اعتبارك أن ملف . هو حرف خاص في التعبير العادي. هذا يعني أنك ستحتاج إلى إضافة ملف \ أمامه إذا كنت تريد البحث عن فترات. هذا يعني أنه يجب عليك استخدام على ما يرام\. لمطابقة "حسنًا".

استخدم المحددات لتحديد طول النص الذي تبحث عنه

حسنًا ، يمكنك تقنيًا استخدام ملف . للبحث عن سلسلة تشغل عددًا محددًا من الأحرف. ومع ذلك ، في معظم الأوقات ، قد ترغب في أن تكون أكثر تحديدًا.

هذا هو المكان الذي تأتي فيه المحددات الكمية. تسمح لك محددات الكم بتحديد طول السلسلة التي تبحث عنها عند استخدام regex مع الاختصارات.

على سبيل المثال ، لنفترض أنك تريد البحث عن أي كلمة تتكون من ثلاثة أحرف على وجه التحديد. لتحديد ذلك ، ستحتاج إلى استخدام هذه الأقواس:

{}

عندما تضع هذه الأقواس بعد ذلك [] بين قوسين ، فأنت تحدد أنك تريد سلسلة تطابق عدد الأحرف داخل هذا {} ونطاق الأحرف المحدد في هذا [].

أنا متأكد من أن هذا ليس له معنى الآن ، لذلك دعونا نلقي نظرة على مثال!

لنفترض أنك تريد العثور على أي سنوات مذكورة في نص. منذ عام يتكون من اربعة ارقام (من الواضح أنه ليس كل عام من كل الأوقات ، فقط اتبعني هنا) ، يمكنك استخدام هذا الرمز لمطابقة السنوات داخل هذا النص:

[0-9]{4}

يقول هذا الرمز أننا نريد سلسلة مكونة من أحرف من 0 إلى 9 بطول أربعة أحرف على وجه التحديد. يمكنك أن ترى كيف تحدد موقع هذه السلسلة المحددة في لقطة الشاشة التالية:

يجب أن أشير إلى أن هناك بعض المشكلات في رمز regex هذا ، وهي لا تتعلق بالمسافات أو علامات الترقيم. لذلك إذا عثرت الشفرة على رقم يزيد طوله عن أربعة أحرف ، مثل "12345678" ، فسيجد السلسلة "1234" والسلسلة "5678".

لإصلاح هذه المشكلة ، قد ترغب في إضافة مسافة إلى بداية الكود وقوس بعد ملف {4} الذي يحتوي على مسافة أخرى ونقطة وعلامة استفهام وفاصلة وعلامة تعجب. بهذه الطريقة ، ستتغاضى عن سلاسل طويلة من الأرقام دون فقدان سلاسل من الأرقام التي تحتوي على علامات ترقيم في نهايتها بدلاً من مسافة.

قد ترغب أيضًا في استخدام المحددات الكمية لتحديد أكثر من طول سلسلة. على سبيل المثال ، ربما أرغب في العثور على سلسلة طولها أربعة أحرف ، ولكن أيضًا سبعة وأحد عشر حرفًا أيضًا. هذا هو الشكل الذي سيبدو عليه:

[a-z] {4،7،11}

هناك عدد قليل من المحددات الكمية التي تريد أن تعرف عنها

حسنًا ، لا يزال هناك المزيد من المحددات الكمية! هذه المحددات الكمية القليلة الأخيرة تستخدم عندما تريد تحديد طول سلسلة دون أن تكون محددًا للغاية.

على سبيل المثال ، لنفترض أنك تريد العثور على سلسلة بأي طول يمكن أن يتطابق مع التعبير العادي. مثل الاسم! تبدأ الأسماء (في الدول الغربية) بحرف كبير واحد وتنتهي بكمية عشوائية من الأحرف الصغيرة ، متبوعة بمسافة. للعثور على اسم ، يجب كتابة الكود التالي:

[أ-ي] [أ-ي] *

[أ-ي] يحدد أن الحرف الأول من السلسلة يجب أن يكون حرفًا كبيرًا. [a-z] * يحدد أن بقية السلسلة يجب أن تتكون من أحرف صغيرة ، ولكن لا يهم عدد الأحرف التي تليها. والمسافة في النهاية تعني أنها ستنهي المباراة بمجرد أن تجد مسافة في نهاية الأحرف الصغيرة.

السرد الذهبي في regex هو .*. هذا يعني أن تطابق أي شخصية إلى ما لا نهاية. بمعنى آخر ، سيتطابق مع النص الكامل للنص كعنصر واحد.

المحدد التالي الذي ستحتاج إلى معرفته هو +. هذا واحد مثل * إلا أنه لن يتطابق مع سلسلة لا تحتوي على أحرف. * سيطابق أي طول من السلسلة ، والذي يتضمن سلاسل ليس لها طول. +، من ناحية أخرى ، يحتاج إلى سلسلة ذات حرف واحد على الأقل أو أكثر.

أخيرًا ، هناك ? محدد الكم. هذا شي غريب. تحدد أن السلسلة تتكون من صفر أحرف في الطول أو حرف واحد في الطول. هذا كل شيء - إما لا شيء أو واحد فقط. لذلك إذا كنت تستخدم الرمز [a-z]؟ مع وجود مسافة في البداية والنهاية ، سيبحث عن أحرف مفردة داخل النص الأساسي.

ابحث عن الأحرف في بداية سلسلة النص ونهايتها

نقترب من نهاية دليلنا حول استخدام regex مع الاختصارات! هناك نوعان آخران فقط من رموز regex ستستخدمهما مع الاختصارات.

الأولى هي الأحرف التي تسمح لك بمطابقة السلاسل بناءً على كيفية بدايتها و / أو نهايتها.

عندما لا يكون بين قوسين ، فإن ^ يتغير دور الشخصية من المعنى "استبعاد" إلى "يبدأ بـ". وهي تحدد أن السلسلة يجب أن تبدأ بما تريد. على سبيل المثال ، إذا كنت تكتب ^ أ، سيطابق هذا الحرف "A" في السلاسل "Alright" و "Apple" و "A".

ومع ذلك ، فهي لا تتطابق مع الكلمة بأكملها. لذلك ، سوف تحتاج إلى تغييره إلى ^ أ [أ-زا-ي] *. سيطابق ذلك الكلمة الأولى من فقرة / سلسلة ، طالما أن هذه الكلمة تبدأ بحرف كبير "A".

كملاحظة جانبية ، يمكنك الكتابة [أ-زا-ي] كما [أ-ي]. إنه يعني نفس الشيء ، أجد أن الأول يكون أوضح قليلاً عندما تتعلم.

لتحديد نهاية السلسلة ، ستحتاج إلى استخدام $ اختلاف الشخصيات. إنه يعمل بنفس طريقة عمل ^ اختلاف الشخصيات. الاختلاف الوحيد هو أنك تكتبه في نهاية قوس / سلسلة بدلاً من كتابته في البداية.

على سبيل المثال ، إذا أردت العثور على سلاسل / فقرات تنتهي بـ "le" ، يمكنك استخدام الكود [A-z] * le $. سيطابق ذلك "جدول" و "تفاحة" و "قادر" طالما أنهم في نهاية سلسلة أو فقرة.

سوف يرفض Regex هذه المطابقة حتى إذا كانت هناك مسافة أو علامة ترقيم في نهاية السلسلة. "طاولة." لن يطابق هذا الرمز.

لإصلاح ذلك ، يمكنك التعامل مع علامات الترقيم. يراعي هذا الرمز أشكالًا مختلفة من علامات الترقيم والتباعد التي يمكن أن تحدث في نهاية السلسلة ، بما في ذلك علامة الترقيم متبوعة بمسافة:

[A-z] * (le [\. \؟!،]؟ []؟) $

سيطابق هذا الرمز "Able" و "table" و "ثابت" و "قادر؟ “.

تخزين السلاسل النصية باستخدام وظيفة التجميع للتعبير العادي باستخدام الاختصارات

على ما يرام! لقد وصلت إلى نهاية دليل AppleToolBox الخاص بنا حول استخدام regex مع الاختصارات. لم يتبق سوى وظيفة واحدة فقط للتعلم ، وهي التجميع.

يمكن القول إن التجميع هو أهم ميزة في regex لأنه يسمح لك بعمل أشياء باستخدام رمز regex الذي تكتبه. بدونها ، فإن regex مجرد ميزة بحث. يمكنه فقط إخبارك ما إذا كانت السلسلة موجودة داخل نص أكبر ، أي أنها ستعيد "صواب" أو "خطأ".

مع التجميع ، يمكنك تخزين نتائج رمز regex الخاص بك. وهذا يعني أنه يمكنك نسخ التطابقات وتخزينها في متغيرات واستبدالها بنص آخر وتعديل تنسيقها وكل شيء آخر تريد القيام به باستخدام regex.

لحسن الحظ ، التجميع سهل للغاية! فقط ضع كل ما تريد تجميعه بين قوسين (). كل ما تضعه بين قوسين سيتم التعامل معه كمجموعة.

إذا وضعت سطرًا كاملاً من كود regex داخل أقواس ، مثل (.*@.*\..{3})، ثم سيتم تذكر هذه المجموعة من خلال الكود الخاص بك ، مما سيسمح باستدعائها لاحقًا أسفل السطر.

من المهم ألا تستخدم المجموعات إلا متى احتجت إلى ذلك. نظرًا لأنه يتم تخزينها في الذاكرة ، فقد تؤدي إلى انخفاض أداء شفرتك. حفظ المجموعات عند الحاجة إليها!

يمكنك استخدام المجموعات للتنظيم أيضًا

يمكنك أيضًا استخدام المجموعات لتنظيم رمز regex الخاص بك باستخدام الاختصارات. عند القيام بذلك ، لن يتم بالضرورة تذكر المجموعة الموجودة داخل الأقواس.

على سبيل المثال ، لنفترض أنني أريد مطابقة كلمة "مرحبًا" ، باستثناء أنني لا أهتم بما هو الحرف الأخير. يمكن أن يكون أي حرف صغير أو كبير أو حتى رقم. يجب حساب "Hell3838djdjajaksks" و "Hello" كمطابقات. من ناحية أخرى ، لا ينبغي احتساب "الجحيم".

لإنجاح هذا العمل ، أكتب الرمز الجحيم [A-z] | [0-9] +. لكن هذه هي النتيجة التي أحصل عليها:

السبب في عدم تطابقها مع الطريقة التي توقعتها هو أن + يتم تطبيقه فقط على [0-9] قوس. أحتاجه للتطبيق على كلا القوسين.

بالإضافة إلى ذلك ، هذا الرمز يقول أنني أريد أيضًا الجحيم [A-z]أو[0-9]. لذلك فهي مطابقة للكلمات التي تبدأ بـ "الجحيم" وتنتهي بحرف ، أو أنها تبحث عن أي سلاسل من الأرقام. ما أحتاجه في الواقع هو مطابقة حالات كلمة "الجحيم" التي تنتهي بحرف أو رقم.

لإصلاح ذلك ، يمكنني استخدام مجموعة وإعادة كتابة الكود كـ الجحيم ([A-z] | [0-9]) +. الآن ، تبحث عن كلمة "Hell" متبوعة بأي حرف أو رقم. ولأن ملف + يتم تطبيقه على كلا القوسين ، ويمكن أن يكون أي مجموعة من الأحرف والأرقام ، طالما يوجد حرف واحد أو رقم واحد على الأقل.

كما ترى في لقطة الشاشة أدناه ، فإن هذه المجموعة تحل مشكلتي دون الحاجة إلى تخزين المعلومات داخل تلك المجموعة:

ماذا الآن؟

وهذا كل شيء! هذا هو كل ما تريد معرفته تقريبًا حول استخدام regex مع الاختصارات. نأمل أن تشعر بالثقة الكافية لبدء تجربة regex الآن ، حتى لو لم يكن ذلك منطقيًا بالنسبة لك في البداية.

الآن بعد أن تعرفت على أساسيات regex ، أصبحت جاهزًا لبدء استخدامه في الاختصارات! تقبل الاختصارات إدخال regex في الإجراءات التالية:

  • نص المطابقة
  • استبدال النص

باستخدام هذين الإجراءين من الاختصارات ، يمكنك إدراج regex في الاختصارات الخاصة بك.

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

يمكنك استخدام regex لتسهيل تنسيق النص في الاختصارات ، لسحب المعلومات من رسائل البريد الإلكتروني والنصوص ومواقع الويب ، الملفات وأحداث التقويم ، قم بإنشاء نص يتبع تنسيقًا محددًا ، وتحقق من إدخال الإدخال بشكل صحيح ، و أكثر.

على سبيل المثال ، لنفترض أنك تريد المطابقة مع رسائل البريد الإلكتروني. ربما تحتاج إلى التحقق من أن سلسلة نصية هي رسالة بريد إلكتروني ، أو ربما ترغب في سحب رسالة (رسائل) بريد إلكتروني من نص نصي.

كيف يمكنك تقسيم هذا؟

حسنًا ، أنت تعلم أن الهيكل الأساسي للبريد الإلكتروني سيكون مزيجًا من الأحرف والأرقام والأحرف ، متبوعًا بالرمز "@" ، ثم متبوعًا باسم موقع ويب مثل Gmail أو iCloud ، ثم يتبعه ".com" أو ".org" أو نوع آخر من المستوى الأعلى المكون من ثلاثة أحرف نطاق.

لكتابة ذلك في regex ، تحتاج إلى تحديد أنك تريد سلسلة من حرف واحد على الأقل يتم اتباعها على الفور بالرمز "@" ، ثم سلسلة أخرى مكونة من حرف واحد على الأقل ، متبوعة بـ "." ، ثم سلسلة من ثلاثة الشخصيات. سيبدو هذا كالتالي:

[بريد إلكتروني محمي]+\..{3}

إذا قمت بلصق هذا في ملف نص المطابقة أو استبدال النص الإجراءات في الاختصارات ، سيكون لديك نظام تلقائي يمكنه العثور على عنوان بريد إلكتروني وتخزينه ومعالجته.

يمكنك استخدام هذا النوع من حل المشكلات للتوصل إلى حلول regex الخاصة بك أو للعثور على بعض الحلول التي صنعها الآخرون عبر الإنترنت!

ابدأ في استخدام regex مع الاختصارات للانتقال بالأتمتة إلى المستوى التالي

وهذا ، أيها الأصدقاء ، هو حقًا. أتمنى أن تكون قد استمتعت بمتابعة هذا المقال! هذه واحدة من أكثر المقالات طموحًا التي كتبتها على الإطلاق لـ AppleToolBox. اضطررت إلى تعليم نفسي regex لكتابتها ، وآمل أن أكون قادرًا على ذلك ، من خلال القيام بذلك ، مساعدتك في تعلمها.

لا يختلف استخدام regex مع Shortcuts عن تعلم كيفية القيام بأي شيء آخر على هاتفك الذكي أو جهاز الكمبيوتر. فقط خصص بعض الوقت والصبر ، وفي النهاية ، ستصل إلى هناك.

لمزيد من الأدلة والبرامج التعليمية والأخبار حول كل ما يتعلق بشركة Apple ، تحقق من بقية مدونة AppleToolBox.

على ما يرام [أ-ي] [أ-ي] +سأراكم في المرة القادمة!