29Jun
سواء كنت تبحث مع غريب أو تبحث في البرامج التي يمكن دفعة إعادة تسمية الملفات بالنسبة لك، وربما كنت أتساءل إذا كان هناك طريقة أسهل لإنجاز مهمتك.لحسن الحظ، هناك، ويسمى "التعبيرات العادية".
( هزلية من XKCD.com)
ما هي التعبيرات العادية؟
التعبيرات العادية عبارة عن بيانات منسقة بطريقة محددة جدا والتي يمكن أن تقف على العديد من النتائج المختلفة.المعروف أيضا باسم "ريجكس" أو "ريجيكس"، فهي تستخدم في المقام الأول في البحث وملفات تسمية الملفات.يمكن استخدام تعبير عادي واحد مثل صيغة لإنشاء عدد من النواتج المحتملة المختلفة، والتي يتم البحث عنها.بدلا من ذلك، يمكنك تحديد كيفية تسمية مجموعة من الملفات عن طريق تحديد التعبير العادي، ويمكن للبرنامج الانتقال تدريجيا إلى الناتج المقصود التالي.وبهذه الطريقة، يمكنك إعادة تسمية ملفات متعددة في مجلدات متعددة بسهولة وبكفاءة، ويمكنك تجاوز حدود نظام الترقيم البسيط.
لأن استخدام التعبيرات العادية يعتمد على بناء جملة خاص، يجب أن يكون البرنامج قادرا على القراءة وتحليلها.العديد من برامج إعادة تسمية ملف الدفعات لنظام التشغيل ويندوز و أوس X لها دعم ريجكس، فضلا عن أداة البحث عبر منصة غريب( الذي لمسنا في لدينا باش البرمجة للمبتدئين دليل) وأوك سطر الأوامر أداة ل * نيكس.وبالإضافة إلى ذلك، العديد من مديري الملفات البديلة، وقاذفات، وأدوات البحث استخدامها، ولها مكان مهم جدا في لغات البرمجة مثل بيرل وروبي.بيئات التطوير الأخرى مثل. NET، جافا، وبيثون، فضلا عن C ++ 11 القادمة، وكلها توفر مكتبات قياسية لاستخدام التعبيرات العادية.كما يمكنك أن تتخيل، فإنها يمكن أن تكون مفيدة حقا عند محاولة تقليل كمية التعليمات البرمجية التي وضعت في البرنامج.
ملاحظة حول الأحرف الهروب
قبل أن نعرض لك أمثلة، نود أن نشير إلى شيء ما.سنستخدم قذيفة باش و الأمر غريب لنعرض لك كيفية تطبيق التعبيرات العادية.المشكلة هي أننا في بعض الأحيان نريد استخدام الأحرف الخاصة التي تحتاج إلى تمريرها إلى غريب، وسوف قذيفة باش تفسير هذا الحرف لأن قذيفة يستخدم ذلك أيضا.في هذه الظروف، نحن بحاجة إلى "الهروب" هذه الشخصيات.هذا يمكن الحصول على مربكة لأن هذا "الهروب" من الأحرف يحدث أيضا داخل ريجيكس.على سبيل المثال، إذا أردنا إدخال هذا إلى غريب:
\ & لوت؛
سيكون لدينا لاستبدال ذلك مع:
\\\ & لوت؛
كل حرف خاص هنا يحصل على رد مائل للخلف.بدلا من ذلك، يمكنك أيضا استخدام علامات اقتباس مفردة:
'\ & لوت؛'
يقتبس من علامات الاقتباس المفردة باش نوت لتفسير ما هو داخلها.في حين أننا نحتاج إلى اتخاذ هذه الخطوات حتى نتمكن من إثبات بالنسبة لك، وبرامجك( وخاصة تلك القائمة على واجهة المستخدم الرسومية) في كثير من الأحيان لن تتطلب هذه الخطوات الإضافية.للحفاظ على الأمور بسيطة ومباشرة، سيتم إعطاء التعبير العادي الفعلي لك كنص مقتبس، وسترى بناء الجملة المهرب في لقطات سطر الأوامر.
كيف يتم توسيعها؟
ريجكس هي طريقة موجزة حقا من حيث توضيح المصطلحات بحيث يمكن للكمبيوتر توسيعها إلى خيارات متعددة.دعونا نلقي نظرة على المثال التالي:
توم [0123456789]
الأقواس المربعة - [و] - أخبر محرك التحليل أنه مهما كان داخل، يمكن استخدام أي حرف واحد لمطابقة.ما يسمى داخل هذه الأقواس يسمى مجموعة الأحرف.
لذلك، إذا كان لدينا قائمة ضخمة من الإدخالات واستخدمنا هذا التعبير العادي للبحث، سيتم مطابقة المصطلحات التالية:
- توم
- tom0
- tom1
- tom2
- tom3
وهلم جرا.ومع ذلك، فإن القائمة التالية لن تكون مطابقة، وحتى لا تظهر في النتائج الخاصة بك:
- الطماطم.فإن التعبير العادي لا يمثل أي رسائل بعد "توم"
- توم؛فإن التعبيرات العادية حساسة لحالة الأحرف!
يمكنك أيضا اختيار البحث مع فترة( .) التي سوف تسمح أي حرف موجود، طالما هناك حرف موجود.
كما ترون، غريبينغ مع
. tom
لم تظهر الشروط التي فقط "توم" في البداية.حتى "الطماطم الخضراء" جاء في، لأن الفضاء قبل "توم" يعد حرفا، ولكن مصطلحات مثل "تومف" لم يكن لها حرف في البداية، وبالتالي تم تجاهلها.
ملاحظة: السلوك الافتراضي غريب هو إرجاع سطر كامل من النص عندما يتطابق جزء ما مع التعبير العادي.برامج أخرى قد لا تفعل ذلك، ويمكنك إيقاف هذا في غريب مع العلم '-o'.
يمكنك أيضا تحديد بديل باستخدام أنبوب( |)، مثل هنا:
سبيسيالي( s | z) e
سيعثر على كل من:
- متخصص
- متخصص
عند استخدام الأمر غريب، نحن بحاجة إلى الهروب من الأحرف الخاصة( ،|، و) مع مائل للخلف وكذلك الاستفادة من '-E' العلم للحصول على هذا العمل وتجنب الأخطاء القبيحة.
كما ذكرنا أعلاه، هذا لأننا بحاجة إلى أن نقول قذيفة باش لتمرير هذه الأحرف إلى غريب وعدم القيام بأي شيء معهم.العلم '-E' يخبر غريب لاستخدام الأقواس والأنابيب كأحرف خاصة.
يمكنك البحث عن طريق الاستبعاد باستخدام كاريت داخل كل من الأقواس المربعة وفي بداية مجموعة:
توم [^ F | 0-9]
مرة أخرى، إذا كنت تستخدم غريب وباش، تذكر أن الهروبأن الأنابيب!
البنود التي كانت في القائمة ولكن لم تظهر هي:
- tom0
- tom5
- tom9
- تومف
لم تتطابق هذه المصطلحات مع منطقتنا العادية.
كيف يمكنني استخدام البيئات؟
في كثير من الأحيان، ونحن نبحث على أساس الحدود.في بعض الأحيان نريد فقط السلاسل التي تظهر في بداية كلمة واحدة، في نهاية كلمة، أو في نهاية سطر من التعليمات البرمجية.هذا يمكن أن يتم بسهولة باستخدام ما نسميه المراسي.
يسمح لك استخدام كاريت( خارج الأقواس) بتعيين "بداية" السطر.
^ توم
للبحث عن نهاية السطر، استخدم علامة الدولار.
توم $
يمكنك أن ترى أن سلسلة البحث الخاصة بنا تأتي قبل المرساة في هذه الحالة.
يمكنك أيضا بالنسبة للمطابقات التي تظهر في بداية أو نهاية الكلمات، وليس خطوط كاملة.
\ & لوت؛ توم
توم \ & غ؛
كما ذكرنا في المذكرة في بداية هذه المقالة، نحن بحاجة إلى الهروب من هذه الأحرف الخاصة لأننا نستخدم باش.بدلا من ذلك، يمكنك أيضا استخدام يقتبس واحد:
النتائج هي نفسها.تأكد من استخدام علامات الاقتباس المفردة، وليس علامات الاقتباس المزدوجة.
موارد أخرى ل ريجكسس المتقدمة
لقد ضرب فقط غيض من فيض هنا.يمكنك أيضا البحث عن مصطلحات مالية تم تحديدها بواسطة محدد العملة، والبحث عن أي من ثلاث عبارات مطابقة أو أكثر.الأمور يمكن أن تكون معقدة حقا.إذا كنت مهتما بمعرفة المزيد عن التعبيرات العادية، يرجى إلقاء نظرة على المصادر التالية.
- لدى Zytrax.com صفحات قليلة تتضمن أمثلة محددة عن أسباب عدم تطابق الأشياء.
- منتظم-Expressions.info أيضا دليل القاتل إلى الكثير من الاشياء أكثر تقدما، فضلا عن صفحة مرجعية في متناول يدي.
- لدى Gnu.org صفحة مخصصة لاستخدام ريجكس مع غريب.
يمكنك أيضا بناء واختبار التعبيرات العادية الخاصة بك باستخدام أداة مجانية على أساس فلاش على الانترنت يسمى ريجكسر.وهو يعمل أثناء الكتابة، هو حر، ويمكن استخدامها في معظم المتصفحات.
هل لديك استخدام مفضل للتعبيرات العادية؟تعرف على دفعة كبيرة رينامر الذي يستخدمها؟ربما كنت ترغب فقط في التباهي الخاص بك غريب-فو.المساهمة بأفكارك من خلال التعليق!