4-modul · 8-dars: Regexp
Daraja: O'rta
Regexp. Multithreading va I/O bo‘yicha nazariya, amaliy namuna va mustaqil mashq.
Tushuntirish
## Dars maqsadi Regexp tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.
## Nazariya Matnda naqsh (pattern) izlash/tekshirish uchun maxsus belgilar tili (regex).
Matnni tekshirish (validatsiya), izlash, ajratish (split) va almashtirish (replace) uchun.
## Intervyuga tayyorgarlik ### Regular Expression nima? Matnda naqsh (pattern) izlash/tekshirish uchun maxsus belgilar tili (regex).
### Regular Expression nima uchun ishlatiladi? Matnni tekshirish (validatsiya), izlash, ajratish (split) va almashtirish (replace) uchun.
### Pattern nima? Kompilyatsiya qilingan regex naqshini ifodalovchi class (`Pattern.compile(...)`).
### Matcher nima? Berilgan matnga Pattern ni qo'llab, moslikni izlaydigan/tekshiradigan class.
### Pattern classining matcher() methodi nima uchun ishlatiladi? Berilgan matn ustida ishlaydigan `Matcher` obyekti yaratish uchun.
### Matcher classining matches() methodi nima uchun ishlatiladi? Butun matn naqshga to'liq mos kelishini tekshirish uchun.
### Matcher classining find() methodi nima uchun ishlatiladi? Matn ichida naqshga mos keluvchi keyingi qismni topish uchun (qisman moslik).
## Versiya va aniqlik Java misollari Java 17 bazasiga mo‘ljallangan. JDK/JRE paketlash usuli distributivga bog‘liq; JVM bayt-kodni interpretatsiya va JIT orqali bajarishi mumkin. GC uchun aniq bajarilish vaqtiga kafolat yo‘q; finalization resurs yopish usuli emas. Thread stop/suspend/resume kabi eski metodlar amaliy yechim emas. Koddagi import, klass yoki tashqi kutubxona kontekstini tekshiring.
## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/4-module.md) [Rasmiy qo‘llanma](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/package-summary.html) [Sizning avvalgi savol-javob arxivingiz](https://lightyer.uz/java/interview.html)
Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.
Kod misoli
var pattern = java.util.regex.Pattern.compile("[A-Za-z][A-Za-z0-9_]{2,19}");
System.out.println(pattern.matcher("java_user").matches());
System.out.println(pattern.matcher("!invalid").matches());
Keng tarqalgan xatolar
- Regexni juda umumiy yozib, kutilmagan matnni ham moslashtirish (masalan `.*` ni ortiqcha ishlatish).
- `Pattern.compile` ni tsikl ichida chaqirish - uni bir marta yaratib qayta ishlating.
Mashqlar
- Email ga o'xshash matnni tekshiruvchi oddiy regex yozing va chegaraviy holatlarni sinang.
- `find()` bilan matndagi hamma sonni topib chiqaring.
Teglar: pdp, nazariya, modul-04