البحث عن لغات البرمجة
هناك العديد من لغات البرمجة ، مثل 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 ++.
هناك حلان لهذه المشكلة:
- قم بتغيير الترتيب للتحقق من المطابقة الأطول أولاً:
JavaScript | Java | C \ + \ + | C | PHP. - دمج المتغيرات بنفس البداية:
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++