Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

14-lekciya

.pdf
Скачиваний:
0
Добавлен:
28.11.2023
Размер:
689.71 Кб
Скачать

Tekstli maǵlıwmatlar menen islew. Turaqlı ańlatpalar

Joba:

1.Kirisiw;

2.Turaqlı ańlatpalardı jaratıw;

3.Turaqlı ańlatpa sintaksisi;

4.Mısallar.

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Kirisiw

Kópshilik programmistler waqtı kelip tekstli maǵlıwmatlardı qayta islewine tuwra keledi. Olardıń arasındaǵı kópshilik ámellerge tekst arasınan izlew hám ózgertiw sıyaqlılar kiredi. Turaqlı ańlatpalarsız (regular expression qısqasha RegEx) bulardı ańsat hám qısqa kod penen ámelge asırıw múmkin emes. Sonlıqtan, turaqlı ańlatpalardı úyreniw hár bir programmist ushın áhmiyetli esaplanadı.

Turaqlı ańlatpalar – simvollar izbe-izligi bolıp, tekst arasınan qatarlardı izlew shablonı esaplanadı. Javada bul shablonlar hárdayım qatarlar, yaǵnıy String klası obyektleri esaplanadı. Biraq barlıq qatarlar turaqlı ańlatpalar bola almaydı, yaǵnıy turaqlı ańlatpalardı jazıw qaǵıydası bar bolıp, onıń sintaksisi tiyisli til specifikaciyası menen baylanıslı boladı.

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Turaqlı ańlatpalardı jaratıw

Turaqlı ańlatpalardı jazıw ushın háripli hám cifrli belgiler hám turaqlı ańlatpalardı jazıwǵa arnalǵan meta belgiler qollanıladı. Máselen:

String regex= "java"; //java Qatari shabloni

String regex= "\\d{3}"; //3 cifrli belgiden ibarat shablon

Javada turaqlı ańlatpalar menen islew ushın java.util.regex paketinen paydalansaq boladı. Bul paket tiykarǵı 3 klasstı óz ishine aladı:

Pattern – shablondı anıqlawshı klass;

Matcher – shablon boyınsha izlewshi klass;

PatternSyntaxException – turaqlı ańlatpanı jazıwdaǵı sintaksis qáteni kórsetedi.

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Java programmada turaqlı ańlatpalar menen islew Pattern klası obyektin jaratıw menen baslanadı. Onın ushın usı klass ishindegi 2 compile statikalıq metodtıń birewin shaqırıw kerek. Birinshi metod, bir argument qabıllaydı yaǵnıy turaqlı ańlatpanı bildiriwshi qatarlı literal, al ekinshisinde tekstti shablon menen salıstırıw ushın kerek bolǵan jáne bir parametr:

public static Pattern compile (String literal)

public static Pattern compile (String literal, int flags)

Javada turaqlı ańlatpalar menen islew ushın java.util.regex paketinen paydalansaq boladı. Bul paket tiykarǵı 3 klasstı óz ishine aladı:

Pattern – shablondı anıqlawshı klass;

Matcher – shablon boyınsha izlewshi klass;

PatternSyntaxException – turaqlı ańlatpanı jazıwdaǵı sintaksis qáteni kórsetedi.

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Mısal

flags parametriniń múmkin bolǵan mánisleri Pattern klası ishindegi statikalıq ózgeriwshiler esaplanadı. Máselen, tekst arasında java sózi bar yamasa joqlıǵın anıqlaw kerek bolsın.

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main {

public static void main(String[] args) {

Pattern pattern = Pattern.compile("java", Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher("Welcome to java"); if(matcher.find()) {

System.out.println("bar");

}

else { System.out.println("joq");

}

}

}

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Bunda birinshi náwbette Pattern.compile() metodı arqalı shablon jaratıladı. Birinshi parametr qanday shablon izleniwin, ekinshisi salıstırıwda registrdi (úlken kishi háripler) esapqa almaw kerekligin bildiredi. matcher() metodı qatardan shablondı izlewde paydalanıladı. find() metodı qatardan shablon tabılsa true mánisin, keri jaǵdayda false mánisin qaytaradı.

compile() metodındaǵı ekinshi parametr yaǵnıy flag, izlew shártlerin kórsetedi. Máselen, onıń tómendegishe túrleri bar:

Pattern.CASE_INSENSITIVE – izlew waqtında háripler registri qaralmaydı.

Pattern.LITERAL – izlew waqtında shablondaǵı arnawlı belgiler ápiwayı belgi sıpatında qaraladı.

Pattern.UNICODE_CASE – CASE_INSENSITIVE ke uqsas, biraq inglis háriplerinen basqa háripler ushında isleydi.

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Turaqlı ańlatpa sintaksisi

Turaqlı ańlatpalar sintaksisi <([{\^-=$!|]})?*+.> simvolları hám háripli simvollar kombinaciyasın paydalanıw arqalı jazıladı. Olardıń atqaratuǵın wazıypasına qarap, birneshe toparlarǵa bóliw múmkin.

Tekst yamasa qatarlardıń shegaraları arqalı salıstırıwshı meta belgiler:

Meta belgiler

Wazıypası

^

Qatar bası

$

Qatar aqırı

\b

Sóz shegaraları

\B

Sóz shegaraları kirmeydi

\A

Kiritiwdiń baslanıwı

\G

Aldınǵı sáykesliktiń tawsılıwı

\Z

Kiritiwdiń juwmaqlanıwı

\z

Kiritiwdiń juwmaqlanıwı

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Belgiler túrin salıstırıwshı meta belgiler

Meta belgiler

Wazıypası

\d

Cifrli belgi

\D

Cifrli belgi emes

\s

Bos orın (probel)

\S

Bos orın (probel) emes

\w

Háripli, cifrli belgi yamasa tómengi sızıq

\W

Háripli, cifrli belgi yamasa tómengi sızıqtan basqa qálegen belgi

.

Qálegen belgi

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Tekstlerdi redaktorlawda paydalanıwshı meta belgiler

Meta belgiler

Wazıypası

\t

Tabulyaciya belgisi

\n

Taza qatar belgisi

\r

Jazılǵan qaytarıw belgisi

\f

Jańa betke ótiw

\u 0085

Keyingi qatar simvolı

\u 2028

Qatarlardı ajıratıw

\u 2029

Abzacları ajıratıw

 

 

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Belgilerdi gruppalaw meta belgileri

Meta belgiler

Wazıypası

[abc]

Jazılǵan háriplerden qálegen birewi (a, b yamasa c)

[^abc]

Jazılǵan háriplerden basqa qálegeni (a, b, c dan basqa)

[a-zA-z]

Kórsetilgen diapazondaǵı belgiler (úlken kishi háripler)

[a-d[m-p]]

a dan d ǵa hám m nan p ǵa shekemgi háriplerdiń birlesiwi

[a-z&&[def]]

Háriplerdiń kesilispesi (d,e,f háripleri)

[a-z&&[^bc]]

Háriplerdi ayırıw (a, d-z háripleri)

[0-9]

0 den 9 ǵa shekemgi cifrlar

</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>

Соседние файлы в предмете Программирование на Java