1. التعبيرات العادية في الأوتار
استخدم تعبيرات منتظمة للبحث والاستخراج والقطاع والبديل والعمليات الأخرى على السلاسل. يتم توفير الطرق الخاصة التالية في فئة السلسلة:
تطابقات منطقية (سلسلة regex): يحدد ما إذا كانت السلسلة تتطابق مع التعبير العادي المحدد.
String ReplaceAll (String regex ، استبدال السلسلة): استبدل جميع عمليات التسليح المطابقة في هذه السلسلة بالاستبدال.
String [] split (string regex): استخدم regex كمفصل لتقسيم السلسلة إلى فرعية متعددة.
تعتمد جميع الأساليب الخاصة المذكورة أعلاه على التعبيرات العادية التي توفرها Java.
2. إنشاء تعبيرات منتظمة
X: الحرف X (X يمكن أن تمثل أي حرف قانونية) ؛
/0mnn: الحرف يمثله رقم الثماني Omnn ؛
/XHH: الشخصية التي يمثلها سداسي عشري 0xHH ؛
/uhhhh: حرف يونيكود يمثله سداسي عشري 0xHHHH ؛
/t: علامة التبويب ('/u0009') ؛
/n: حرف جديد (سطر جديد) حرف ('/u000a') ؛
/r: حرف عودة النقل ('/u000d') ؛
/F: Break Page ('/u000c') ؛
/A: رمز المنبه (الجرس) ('/u0007') ؛
/E: شخصية Escape ('/u001b') ؛
/CX: وحدة التحكم المقابلة لـ X. على سبيل المثال ، /سم تطابق Ctrl-M. يجب أن تكون قيمة x واحدة من ~ z أو ~ z ؛
3. شخصيات خاصة في التعبيرات العادية
$: تطابق نهاية الخط. لمطابقة شخصية $ نفسها ، الاستخدام /$ ؛
^: تطابق بداية الخط. لمطابقة الشخصية ^ نفسها ، استخدم / ^ ؛
(): وضع علامة على المواقف البدء والنهاية من التعبير الفرعي. لمطابقة هذه الشخصيات ، استخدم /(و /) ؛
[]: يستخدم لتحديد المواضع البدء والنهاية لتعبيرات الأقواس. لمطابقة هذه الشخصيات ، استخدم /[و /] ؛
{}: تستخدم لتمييز تواتر التعبير الفرعي السابق. لمطابقة هذه الأحرف ، استخدم /{و /} ؛
*: يحدد أن التعبير الفرعي السابق يمكن أن يحدث صفر أو أكثر. لمطابقة الشخصية نفسها ، استخدم / * ؛
+: يحدد أن التعبير الفرعي السابق يمكن أن يحدث مرة واحدة أو أكثر. لمطابقة الحرف + نفسه ، استخدام / + ؛
؟: يحدد أن التعبير الفرعي السابق يمكن أن يحدث صفر أو مرة واحدة. لمطابقة الشخصية نفسها ، استخدم /؟ ؛
.: تطابق أي حرف وحدة باستثناء كسر الخط/n. لمطابقة ، الشخصية نفسها ، استخدام /. ؛
/: تستخدم للهروب من الحرف التالي ، أو تحديد أحرف أوكتال أو سداسية عشرية. لمطابقة /حرف ، استخدام // ؛
|: حدد أيًا من العناصر. لمطابقة | الحرف نفسه ، استخدام /| ؛
4. أحرف محددة مسبقا
.: يمكن أن تطابق أي حرف ؛
/D: تطابق جميع الأرقام من 0 ~ 9 ؛
/D: تطابق غير الأرقام ؛
/S: تطابق جميع أحرف المسافة البيضاء ، بما في ذلك المساحات ، علامات التبويب ، عودة النقل ، فواصل الصفحة ، فواصل الأسطر ، إلخ ؛
/S: تطابق جميع الشخصيات غير المتسابقين ؛
/W: تطابق جميع أحرف الكلمة ، بما في ذلك جميع الأرقام من 0 ~ 9 ، 26 خطابًا باللغة الإنجليزية ورسومات السفلية (_) ؛
/W: تطابق جميع الشخصيات غير الكلمة ؛
5. أحرف مطابقة الحدود
^: بداية الخط
$: نهاية الخط
/ب: حدود الكلمات
/ب: حدود غير الكلمة
/أ: بداية المدخلات
/ز: نهاية المباراة السابقة
/Z: نهاية المدخلات ، فقط لحرف النهاية الأخيرة
/Z: نهاية المدخلات
6. الرموز التي تمثل عدد المباريات
يوضح الشكل التالي الرموز التي تمثل عدد التطابقات ، والتي يتم استخدامها لتحديد عدد المرات التي يظهر فيها الرمز بجوار يسار الرمز:
(1) افترض أننا نريد البحث عن رقم الضمان الاجتماعي الأمريكي في ملف نصي. شكل هذا الرقم هو 999-99-9999. يظهر التعبير المنتظم المستخدمة في المطابقة في الشكل 1. في التعبيرات العادية ، يكون للواصلة ("-") معنى خاص ، والذي يمثل نطاقًا ، مثل من 0 إلى 9. لذلك ، عند مطابقة الواصلة في رقم الضمان الاجتماعي ، يجب أن يسبقه شخصية الهروب "/".
(2) افترض عند البحث ، وتأمل أن تظهر الواصلة أم لا-أي 999-99-9999 و 999999999999 كلاهما بالتنسيق الصحيح. في هذا الوقت ، يمكنك إضافة "؟" رمز التأهيل الكمي بعد الواصلة ، كما هو موضح في الشكل:
(3) دعنا نلقي نظرة على مثال آخر أدناه. تنسيق واحد لألواح ترخيص السيارات الأمريكية هو أربعة أرقام بالإضافة إلى رسالتين. يسبق تعبيره المعتاد جزء الأرقام "[0-9] {4}" وجزء الحروف "[az] {2}". يوضح الشكل التالي التعبير العادي الكامل.
7. بعض الأمثلة 1
وظيفة استبدال (المحتوى) {var reg = '// [(// w+) //]' ، pattern = new regexp (reg ، 'g') ؛ return content.replace (pattern ، '<img src = "img/$ 1.png">') ؛} // أو الدالة استبدال (content) {return content.replace (// [(/w+) // g ، '<img src = "img/$ 1.png">') ؛}مثال 2
// Zero-Width انظر وراء الحل البديل // (؟ <= ...) و (؟ <! ...) // الطريقة 1: عكس السلسلة ، وابحث مع lookahead ، واستبدله ، ثم إعادة تربيته ، على سبيل المثال: string.prototype.reverse = function () {return this.split (''). عكس (). 'foo.bar | baz'.replace (/(؟ <=/.) b/،' c ') استبدال B على الفور بـ "." أمامه مع c'foo.bar | baz'.reverse (). استبدال (/b (؟ =/.)/g ، 'c'). عكسي () //foo.car con courbaz//method 2: لا تستخدم Zero Width Assainting ، ugne بنفسك // محاكاة 'foo.bar | baz'. في المقدمة إلى c'foo.bar | baz'.replace (/(/.)؟ b/، وظيفة ($ 0 ، $ 1) {return $ 1؟ $ 1 + 'c': $ 0 ؛}) '.bar | baz'.replace (/(/.)؟ b/، function ($ 0 ، $ 1) {return $ 1؟ $ 0:' c '؛ //'ttttt'.replace(/(؟<=T)T/G ، 'x') يجب أن تكون النتيجة 'txxx''tttt'.replace (/(t)؟ t/g ، الدالة ($ 0 ، $ 1) {$ 1؟ $ 1 +' x ': $ 0 ؛})مثال 3
استخدام $ والرمز
دالة escaperegexp (str) {return str.replace (/[abc]/g ، "($ &)") ؛} var str = 'a12b34c' ؛ console.log (Escaperegexp (str)) ؛ // (أ) 12 (ب) 34 (ج)