الرجوع الي الدرس

البحث عن لغات البرمجة

هناك العديد من لغات البرمجة ، مثل Java و JavaScript و PHP و C و C ++.

أنشئ التعبير العادي الذي يعثر عليه في السلسلة الموضوع: Java JavaScript PHP C ++ C:

let regexp = /your regexp/g;

alert("Java JavaScript PHP C++ C".match(regexp)); // Java JavaScript PHP C++ C

يمكن أن تكون الفكرة الأولى هي سرد اللغات التي يوجد بها “|” في الوسط.

لكن هذا لا يعمل بشكل صحيح:

let regexp = /Java|JavaScript|PHP|C|C\+\+/g;

let str = "Java, JavaScript, PHP, C, C++";

alert( str.match(regexp) ); // Java,Java,PHP,C,C

يبحث محرك التعبير العادي عن البدائل واحدة تلو الأخرى. هذا هو: أولاً يتحقق مما إذا كان لدينا Java ، وإلا – يبحث عن JavaScript وما إلى ذلك.

ونتيجة لذلك ، لا يمكن العثور على JavaScript مطلقًا ، فقط لأنه يتم تحديد Java أولاً.

نفس الشيء مع C و C ++.

هناك حلان لهذه المشكلة:

  1. قم بتغيير الترتيب للتحقق من المطابقة الأطول أولاً: JavaScript | Java | C \ + \ + | C | PHP.
  2. دمج المتغيرات بنفس البداية: Java (Script)؟ | C (\ + \ +)؟ | PHP.

بشكل عملي:

let regexp = /Java(Script)?|C(\+\+)?|PHP/g;

let str = "Java, JavaScript, PHP, C, C++";

alert( str.match(regexp) ); // Java,JavaScript,PHP,C,C++