Dasturlash tillarini topish
Ko’plab 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 g’oya tillarni o’rtalarida | bilan ro’yxatlash bo’lishi mumkin.
Ammo bu to’g’ri 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. Ya’ni: avval Java bor-yo’qligini tekshiradi, aks holda – JavaScript ni qidiradi va hokazo.
Natijada, JavaScript hech qachon topila olmaydi, chunki Java birinchi bo’lib tekshiriladi.
C va C++ bilan ham xuddi shunday.
Bu muammo uchun ikkita yechim bor:
- Uzunroq moslikni birinchi tekshirish uchun tartibni o’zgartirish:
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++