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++