Skip to content

Commit f58de77

Browse files
committed
Revize kap. Regulární výrazy
Closes #78
1 parent 50669c7 commit f58de77

File tree

2 files changed

+16
-32
lines changed

2 files changed

+16
-32
lines changed

ziskavani-dat/regularni-vyrazy/excs/napravy.md

Lines changed: 0 additions & 11 deletions
This file was deleted.

ziskavani-dat/regularni-vyrazy/regularni-vyrazy.md

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,19 @@ Neúčtujeme žádné poplatky.
2828

2929
Podívejme se nejprve na řádek, kde máme kurz Eura. Mohli bychom napsat pouze dolar, ale abychom označili i jedničku před znakem měny, napíšeme `1 €`.
3030

31-
### Skupiny znaků
31+
### Množiny znaků
32+
33+
Pokud chceme, aby náš metaznak zastupoval jeden z množiny znaků, vložíme tyto znaky do hranatých závorek `[ ]`. Například pokud chceme v kurzovním lístku vyhledat řádky, které mají v sobě znak dolaru nebo eura, napíšeme `1 [€$]`.
34+
35+
36+
### Rozsahy znaků
37+
38+
Množinu znaků můžeme vyjádřit pomocí rozsahu. K tomu použijeme pomlčku, kterou vepíšeme do hranatých závorek. Například čísla od 1 do 5 napíšeme jako `[1-5]`, malá písmena od a do e jako `[a-e]` a všechna velká písmena jako `[A-Z]`. Krajní hodnoty do rozsahu patří.
39+
40+
V jedné množině znaků můžeme napsat i více rozsahů. Např. velká písmena anglické abecedy a cifry můžeme vyjádřit jako `[A-Z0-9]`.
41+
42+
Pokud například víme, že se na nějaké střední škole vyskytují třídy označené od A do M, regulární výraz pasující na všechna jména tříd je `[1-4][A-M]`.
3243

33-
Pokud chceme, aby náš metaznak zastupoval jeden ze skupiny znaků, vložíme tyto znaky do hranatých závorek `[ ]`. Například pokud chceme v kurzovním lístku vyhledat řádky, které mají v sobě znak dolaru nebo eura, napíšeme `1 [€$]`.
3444

3545
### Kvantifikátory
3646

@@ -71,9 +81,10 @@ Kromě složených závorek existují i tři speciální kvantifikátory.
7181

7282
Pro náš případ s výběrem řádků můžeme použít např. `1 [€$] +`.
7383

74-
### Skupiny znaků
7584

76-
Ve většině případů potřebujeme pracovat nejen s konkrétním znakem nebo konkrétními znaky, ale skupinami znaků. Abychom si práci usnadnili a nemuseli používat příliš často hranaté závorky, existují předem definované skupiny znaků. Skupiny jsou celkem tři a ke každé z nich existuje i její "opak". Např. skupina `\d` označuje čísla a skupina `\D` označuje vše kromě čísel, tj. písmena, mezery, speciální znaky jako ``, `$` atd. Přehled skupin najdeš zde:
85+
### Speciální množiny znaků
86+
87+
Abychom si práci usnadnili a nemuseli používat příliš často hranaté závorky, existují předem definované skupiny znaků. Skupiny jsou celkem tři a ke každé z nich existuje i její "opak". Např. skupina `\d` označuje čísla a skupina `\D` označuje vše kromě čísel, tj. písmena, mezery, speciální znaky jako ``, `$` atd. Přehled skupin najdeš zde:
7788

7889
* `\d` zahrnuje číslice 0-9.
7990
* `\D` zahrnuje jakýkoliv znak kromě číslic 0-9
@@ -123,23 +134,8 @@ Nyní už umíme sestavit výraz, kterým vybereme celý řádek s kurzem dolaru
123134

124135
Pokud bychom neuvažovali předčíslí, stačí nám regulární výraz `\d{6,10}/\d{4}`, který by měl pasovat např. na číslo účtu 2300117015/2010. Nesmíme zapomenout na zpětné lomítko před lomítkem.
125136

126-
Uvažujme, že máme program, do kterého nějaký programátor vložil proměnnou `magicka_konstanta`. Víme, že proměnná je desetinné číslo, ale potřebujeme vědět, kde je zadána její hodnota. Napiš regulární výraz, který najde řádek, kde programátor zadává hodnotu proměnné `magicka_konstanta`.
127137

128-
```
129-
polomer = input("Zadej poloměr koule: ")
130-
polomer = int(polomer)
131-
magicka_konstanta = 3.1415
132-
objem = 4/3 * magicka_konstanta * polomer ** 3
133-
povrch = 4 * magicka_konstanta * r ** 2
134-
```
135-
136-
Zkus si program zkopírovat do Visual Studia a vyzkoušej si vyhledávání přepnout na regulární výrazy. Najde regulární výraz `magicka_konstanta = \d+\.\d*` správný řádek?
137-
138-
### Rozmezí
139-
140-
Kromě výpisu znaků a předdefinovaných skupin můžeme ještě vybrat znaky pomocí rozmezí. K tomu použijeme pomlčku, kterou vepíšeme do hranatých závorek. Například čísla od 1 do 5 napíšeme jako `[1-5]`, malá písmena od a do e jako `[a-e]` a všechna velká písmena jako `[A-Z]`.
141-
142-
Pokud například víme, že se na nějaké střední škole vyskytují třídy označené od A do M, regulární výraz pasující na všechna jména tříd je `[1-4][A-M]`.
138+
### Kvatifikátory skupin
143139

144140
Pokud potřebujeme zajistit opakování určité sekvence znaků (ne jen jednoho), můžeme sekvenci znaků uzavřít do kulatých závorek `( )` a za pravou závorku umístit kvantifikátor. Pokud máme variant více, můžeme k jejich oddělení použít znak `|`. Například pokud chceme vybrat oba víkendové dny, napíšeme `(sobota|neděle)`.
145141

@@ -176,6 +172,5 @@ Podívejme se nyní na pár příkladů. Níže máme tabulku s kurzy Czechitas.
176172
::exc[excs/registracni-znacka]
177173
::exc[excs/telefonni-cislo]
178174
::exc[excs/ministerstva]
179-
::exc[excs/napravy]
180175
::exc[excs/slavny-soude]
181176
::exc[excs/ave-caesar]

0 commit comments

Comments
 (0)