You are on page 1of 5

REGULAR EXPRESSIONS

State machine (search machine) –

([a-z\-])+

words and half-life

tireto e special symbol i za tova trqbva da go escape s \

([a-z])+

words and half-life

bez tire shte prochete samo dumite

([a-z])+

Tozi + oznachava posledovatelnost ot tezi bukvi ako imame duma word

+ shte otchete cqlata duma ako nqmame plus shte gi prochete otdelno

(w) (o) (r) (d)

\b[A-Z][a-z]+

Tova \b ot pred oznachava kraina purva duma

Half-Life counter-Strike StarCraft

a ako e taka

[A-Z][a-z]+\b

Oznachava kraina posledna duma

Half-Life counter-Strike StarCraft


[^abc] – matchva vsichki characters koito ne sa tezi ot izbroenite

Abraham

\w – matches vseki simvol za duma A-Z a-z 0-9 _ (demek namira dumite +)

\W – obratnoto ne gi matchva a matchva vsichki drugi ne tezi

\s – matches spaces

\S – obratnoto vsichki ne spaces

\d – matches digits

\D – obratnoto vsichki ne digits

* - oznachava che moje da go ima 0 ili mnogo na broi puti

primerno tuk

[A-Z][a-z]*

I Am Groot!

? - vuprositelnata oznachava moje da go nqma no moje I da go ima vednuj

primerno tuk

[A-Z][a-z]?

I Am Groot!

+ - oznachava edin ili poveche puti

primerno tuk v sluchaq e za poslednoto a-z edin ili poveche puti

[A-Z][a-z]+

I Am Groot!
\+\d{3}

Tova {3} e fiksirana stoinost

+359899911931

Quantifiers: * + ? {} …. etc

te se otnasqt za poslednoto neshto koeto sme napisali

() – mogat da otgovarqt za izraza kato edno cqlo

([A-Z][a-z]+){2}

StarCraft PascalCase Mortal Kombat

| - oznachava ili

?<naimenuvane>

[A-Za-z]{2} – tova oznachava 2 na broi malki ili golemi bukvi


^ - oznachava nachaloto na stringa do kraq $
$ - kraq na stringa primerno v emailite
Backreference / clone

\1 – kakvato e purvata grupa tova mi tursi da e I nakraq


kakto v primera

([^ A-Z a-z 0-9 \s]+)([a-z]+|\d+)\1


koeto oznachava kakvoto e v purva grupa v sluchaq ([^ A-Z a-z 0-9 \s]+)

tova iskam i ot zad

i za tozi primer shte raboti taka

_abc. _123_ __ _a1_ …123… ,.!acc,.! ,.!acc___

Java Part Working with RE


String regex = "([^A-Za-z0-9\\s]+)([a-z]+|\\d+)\\1";
String text = "_abc. _123_ __ _a1_ …123… ,.!acc,.! ,.!acc___";

String result = text.replaceAll(regex, "found");

replaceAll – vzima regex za stoinost tova koeto shte nameri i mu davame s


kakvo da go zameni v sluchaq found

StateMachine

Pattern pattern = Pattern.compile(regex);

Matcher – e neshto(index) koeto hodi po suvpadeniqta v texta

Matcher matcher = pattern.matcher(text);

find – vrushta boolean true/false

matcher.find() – shte vurne true ako nameri suvpadenie v text

matcher.find e vse edno ++ na indexa I vseki put kogato go napishem otiva


na sledvashtoto namereno suvpadenie
matcher.group() – izkarva nulevata grupa koeto e suvpadenieto ako nameri

_123_ primerno sout(matcher.group()) – shte otpechata suvpadenieto

Ako iskame da namerim vsichki suvpadeniq mu vrutkame edin while


while (matcher.find()) {
System.out.println(matcher.group());
}

razqsnenie – nali dokato namirash suvpadenie mi go otpechatvai

I cikula shte se otpechata tolkova puti kolkoto find e true

Moje da otpechatame I po otdelno grupite matcher.group(1..2..);

Naming group

String regex = "(?<first>[^A-Za-z0-9\\s]+)([a-z]+|\\d+)\\1";

moje da naimenuvame grupite kato ?<name>

i posle da otpechatvame po string v primera match.group(“first”)

Minimum 3 characters long***

![A-Z][a-z][a-z]+!
Moje prosto da mu dobavim oshte edno [a-z]+ zada stanat 3 ili
poveche 
Minimum 8 characters long***
[A-Z]{8,}
{8,} – tova oznachava pone 8 puti no moje i poveche

\n – end of the input

You might also like