المفاهيم الأساسية
التعبير العادي هو نمط نص يتضمن أحرفًا طبيعية (على سبيل المثال ، الحروف بين من A إلى Z) والأحرف الخاصة (تسمى "Metachars"). يصف النمط سلاسل أو أكثر لتتطابق عند البحث عن النص.
أولاً ، يوصى بالعديد من محرري التعبير العادي
Debuggex: https://www.debuggex.com/
Pyregex: http://www.pyregex.com/
regexper: http://www.regexper.com/
التعبيرات العادية هي عمليات البحث والسلسلة. تُستخدم التعبيرات العادية على نطاق واسع في محرري النصوص ، مثل التعبيرات العادية تستخدم لـ:
[نسخة] تحقق مما إذا كان النص يحتوي على الكلمة المميزة المحددة
اكتشف أين توجد الكلمات المميزة المطابقة في النص
استخراج المعلومات من النص ، مثل: سلسلة من الأوتار
تعديل النص
ملاحظة: عادة ما تستخدم التعبيرات العادية لمهمتين: 1. التحقق ، 2. البحث/استبدال. عند استخدامها للتحقق ، من الضروري عادة إضافة ^ و $ قبل وبعد مطابقة السلسلة بأكملها المراد التحقق منها ؛ ما إذا كان لإضافة هذا القيد عند البحث/الاستبدال يعتمد على متطلبات البحث. بالإضافة إلى ذلك ، من الممكن أيضًا إضافة /B بدلاً من ^ و $ قبل وبعد. باستثناء عدد قليل ، لا تتم إضافة أي قيود قبل وبعد التعبيرات العادية المشتركة المدرجة في هذا الجدول. يرجى التعامل معهم بنفسك حسب الحاجة.
أمر الأولوية
بعد إنشاء تعبير منتظم ، يمكنك تقييم مثل التعبير الرياضي ، أي يمكنك التقييم من اليسار إلى اليمين وبتطلب الأولوية. يسرد الجدول التالي ترتيب أولوية لمشغلي التعبير العادية المختلفة من أعلى الأولوية إلى أدنى أولوية:
| المشغل | يصف |
|---|---|
| / | رمز الهروب |
| () ، (؟ :) ، (؟ =) ، [] | الأقواس والأقواس المربعة |
| *، +،؟ ، {n} ، {n ،} ، {n ، m} | التصفيات |
| ^، $ ، /anymetacharacter | الموقف والنظام |
إنشاء تعبيرات منتظمة
طريقة بناء التعبيرات العادية هي نفس طريقة إنشاء تعبيرات رياضية. وهذا يعني ، استخدام metacharacters متعددة والمشغلين لدمج التعبيرات الصغيرة لإنشاء تعبيرات أكبر.
يمكن بناء تعبير منتظم عن طريق وضع مكونات مختلفة لنمط التعبير بين زوج من الفواصل.
بالنسبة إلى JScript ، فإن المحدد هو زوج من الشخصيات المائلة للأمام (/). على سبيل المثال:
/تعبير/
بالنسبة لـ VBScript ، يتم استخدام زوج من علامات الاقتباس ("") لتحديد حدود التعبير العادي. على سبيل المثال:
نسخة الكود كما يلي:
"تعبير"
انظر مثال
نسخة الكود كما يلي:
// تطابق ما إذا كان الحساب قانونيًا (بدءًا من الحروف ، 5-16 بايت مسموح به ، مسموح بسد أبجدي رقمي.
var re = new regexp ("^[a-za-z] [a-za-z0-9 _] {5،19} $") ؛
if (re.test (aaaa)) {
تنبيه ("التنسيق الصحيح") ؛
}آخر{
تنبيه ("خطأ التنسيق") ؛
}
يمكن أن تكون مكونات التعبيرات العادية شخصية واحدة ، أو مجموعة من الأحرف ، أو مجموعة من الأحرف ، أو الاختيار بين الأحرف ، أو أي مجموعة من جميع هذه المكونات.
تعبيرات منتظمة شائعة الاستخدام
تعبير منتظم مطابقة الأحرف الصينية: [/u4e00-/u9fa5]
تعليق: مطابقة الصينية هي حقًا صداع ، من السهل القيام بهذا التعبير
تطابق الشخصيات المزدوجة (بما في ذلك الأحرف الصينية): [^/x00-/xff]
التعليق: يمكن استخدامه لحساب طول السلسلة (مقياس طول الحرف المزدوج 2 ، مقياس حرف ASCII 1)
تعبير منتظم مطابقة الخطوط الفارغة:/n/s*/r
التعليق: يمكن استخدامه لحذف أسطر فارغة
تعبير منتظم مطابقة العلامات html: <(/s*؟) [^>]*>.*؟ <// 1> | <.*؟ />
التعليق: الإصدار المتداول عبر الإنترنت أمر سيء للغاية ، ويمكن لما يلي ما يلي مطابقة الجزء ، ولا يزال عاجزًا عن استخدام علامات متداخلة معقدة.
تعبير منتظم يتطابق مع أحرف الساحة البيضاء في البداية والنهاية: ^/s*|/s*$
تعليق: يمكن استخدامه لحذف أحرف المسافة البيضاء في بداية ونهاية الخط (بما في ذلك المساحات ، وعلامات التبويب ، وفواصل الصفحة ، إلخ) ، تعبير مفيد للغاية
تعبير منتظم يتطابق مع عنوان البريد الإلكتروني: /w+( Budap-+.
التعليق: إنه عملي للغاية عند التحقق من النموذج
عنوان URL المتطابق التعبير العادي: [A-ZA-Z]+: // [^/s]*
تعليق: وظائف الإصدار المتداول عبر الإنترنت محدودة للغاية ، ويمكن أن تلبي ما ورد أعلاه بشكل أساسي الاحتياجات
تطابق ما إذا كان الحساب قانونيًا (بدءًا من الرسائل ، 5-16 بايت مسموح به ، مسموح بسد أبجدي رقمي): ^[A-ZA-Z] [A-ZA-Z0-9 _] {4،15} $
التعليق: إنه عملي للغاية عند التحقق من النموذج
تطابق رقم الهاتف المحلي:/d {3}-/d {8} |/d {4}-/d {7}
التعليق: نماذج المطابقة كما يلي: 0511-4405222 أو 021-87888822
تطابق رقم QQ: [1-9] [0-9] {4 ،}
التعليق: يبدأ رقم Tencent QQ من 10000
تطابق الكود البريدي الصيني: [1-9]/D {5} (؟!/D)
التعليق: رمز الصين البريدي هو 6 أرقام
بطاقة معرف المباراة: /d {15} | /d {18}
تعليق: بطاقة الهوية الصينية هي 15 أو 18 رقمًا
عنوان IP Match: /d+/./d+/./d+/./d+
التعليق: إنه مفيد عند استخراج عناوين IP
تطابق أرقام محددة
[نسخ] ^[1-9]/d*$ // match الأعداد الصحيحة الإيجابية
^-[1-9]/d*$ // MATCE SEDAL
^-؟ [1-9]/d*$ // match الأعداد الصحيحة
^[1-9]/d*| 0 $ // match غير سلبية (عدد صحيح إيجابي + 0)
^-[1-9]/d*| 0 $ // match غير إيجابية للأعداد الصحيحة (الأعداد الصحيحة السلبية + 0)
^[1-9]/d*/./d*| 0/./ d*[1-9]/d*$ //
^-([1-9]/d*/./d*| 0/./ d*[1-9]/d*) $ //
^-؟ ([1-9]/d*/./d*| 0/./ d*[1-9]/d*| 0؟
^[1-9]/d*/./d*| 0/./ d*[1-9]/d*| 0؟
^(-([1-9]/d*/./d*| 0/./ d*[1-9]/d*)) | 0؟
التعليق: إنه مفيد عند معالجة كميات كبيرة من البيانات ، واحرص على تصحيحها عند تطبيقها بالتفصيل.
تطابق سلسلة محددة
[نسخة]^[A-ZA-Z]+$ // تطابق سلسلة مكونة من 26 حرفًا إنجليزيًا
^[AZ]+$ // تطابق سلسلة مكونة من 26 رسائل إنجليزية
^[AZ]+$ // تطابق سلسلة مكونة من 26 حرفًا باللغة الإنجليزية
^[A-ZA-Z0-9]+$ // تطابق سلسلة مكونة من أرقام و 26 حرفًا إنجليزيًا
^/W+$ // تطابق سلسلة مكونة من الأرقام أو 26 خطابًا إنجليزيًا
التعليق: بعض التعبيرات الأساسية والأكثر استخدامًا
خريطة العقل