Dasturlash tillarini topish
Koplab dasturlash tillari mavjud, masalan Java, JavaScript, PHP, C, C++.
Ularni Java JavaScript PHP C++ C satrida topadigan regexp yarating:
let regexp = /sizning regexpingiz/g;
alert("Java JavaScript PHP C++ C".match(regexp)); // Java JavaScript PHP C++ C
Birinchi goya tillarni ortalarida | bilan royxatlash bolishi mumkin.
Ammo bu togri ishlamaydi:
let regexp = /Java|JavaScript|PHP|C|C\+\+/g;
let str = "Java, JavaScript, PHP, C, C++";
alert(str.match(regexp)); // Java,Java,PHP,C,C
Muntazam ifoda dvigateli alternativlarni birin-ketin qidiradi. Yani: avval Java bor-yoqligini tekshiradi, aks holda JavaScript ni qidiradi va hokazo.
Natijada, JavaScript hech qachon topila olmaydi, chunki Java birinchi bolib tekshiriladi.
C va C++ bilan ham xuddi shunday.
Bu muammo uchun ikkita yechim bor:
- Uzunroq moslikni birinchi tekshirish uchun tartibni ozgartirish:
JavaScript|Java|C\+\+|C|PHP. - Bir xil boshlanish bilan variantlarni birlashtirish:
Java(Script)?|C(\+\+)?|PHP.
Amalda:
let regexp = /Java(Script)?|C(\+\+)?|PHP/g;
let str = "Java, JavaScript, PHP, C, C++";
alert(str.match(regexp)); // Java,JavaScript,PHP,C,C++