RegEx Wildcards.pdf
Transcript of RegEx Wildcards.pdf
7/23/2019 RegEx Wildcards.pdf
http://slidepdf.com/reader/full/regex-wildcardspdf 1/3
Mali tutorijal o RegEx
RegEx sintaksaElement Značenje Primjer
Traži Nađeno
x znak a a
\t tabulator
. Bilo koji znak uključujići novi red
\d znamenka
\D Znak koj nije znamenka
\s razmak
\S znak koji nije razmak
\w slovo ili znamenka
(alfanumerimerički znakovi)
\W Znakovi koji nisu alfanumerimerički
\ Omogučava traženje posebnih
znakova
a\sc a c
| Okomita crta razdvaja alternative abc|def|xyz abc, def i xyz
{...} Eksplicitno količninski zapis ab{2}c abbc
[…] Skup znakova a[bB]c abc, aBc
[‐] omogućuje specifikaciju susjednih
znakova rasponima
[a‐d] a, b,c ili d
[^] Negira niz [^a‐d] Bilo koji znak osim a,
b,c ili d
(...) Služi za grupiranje (grupama u
replace pristupamo sa \1 za prvu
zagradu, \2 za drugu itd.)
(abc)‐(def) Za \1\2 dobivamo
abcdef
* 0 ili više od prethodnog izraza ab*c ac, abc, abbc, abbbc, ...
+ Jedna ili više prethodnih izraza ab+c abc, abbc, abbbc, ...
7/23/2019 RegEx Wildcards.pdf
http://slidepdf.com/reader/full/regex-wildcardspdf 2/3
RegEx nam služi za pretragu i manipulaciju teksta ovisno o nekim uzorcima( patterns).
Znači cilj je da pomoču regexa na što brži način sredimo tekst. Najprije bi trebali odrediti tekst
(string) kojima želimo manipulirati i onda ga prebaciti u uzorak ili pattern.Da bi smo to postigli
trebamo znati osnovnu sintaksu regexa(nalazi se u tablici) ili prekopirati od drugih.
Da ne duljim, naprimjer u tekstu želimo ispraviti nepotrebne crtice(‐) između riječi. Da stvar bude
gora uočili smo da iza crtice nekada zna biti razmak(nekad i više). I sada da nebismo pješke tražili te
crtice složimo pattern:
Find: ([a‐z|č|ć|ž|š|đ|dž])‐\s*([a‐z|č|ć|ž|š|đ|dž])
Replace: \1\2
E ovdije bi se neko mogao olakomitii otiči na Replace all ne misleći na fraze tipa danas-sutragore-dolje, sekundu-dvije i još mnogo takvih primjera obrisati crtice tamo i gdje ne želimo.
Znači oprezno sa Replace all!
Kod slaganja patterna bitno je iskustvo i prepoznavanje čestih grešaka u tekstovima. Jazasada imam malu listu koju sam postavio u tablicu i koju konstantno obnavljam.
Često korišteni izrazi Find Replace Replace All Komentar
</p>\s+<p>([a-z|č|ć|ž|š|đ|dž]) ne Paragraf koji počinjemalim slovom
([0-9|a-z|č|ć|ž|š|đ|dž|-|-\s+|;|;\s+|:|:\s+|,\s+|,|])</p>\s+<p>([0-9|A-Z|Č|Ć|Ž|Š| Đ|Dž|a-
z|č|ć|ž|š|
đ|dž|„])
Krivo rezani paragraf
([a-z|č|ć|ž|š|đ|dž])-\s*([a-z|č|ć|ž|š|đ|dž])
\1\2 ne Višak crtica (-) sa ili bezrazmaka iza crtice
([a-z|č|ć|ž|š|đ|dž])\s*-([a-z|č|ć|ž|š|đ|dž])
\1\2 ne Višak crtica (-) sa ili bezrazmaka ispred crtice
([a-z|č|ć|ž|š|đ|dž])¬([a-z|č|ć|ž|š|đ|dž])
\1\2 da Miče znak ¬ koj senalazi unutar riječi
Često greške u riječima
Find Replace Replace All Komentar
(\s+mi)(je\s+) \1 \2 ne(\s+bi)(je\s+) \1 \2 ne(\s+da)(je\s+) \1 \2 ne(\s+ga)(je\s+) \1 \2 neSto(\s+) Što\1 ne
7/23/2019 RegEx Wildcards.pdf
http://slidepdf.com/reader/full/regex-wildcardspdf 3/3
Evo primjera kako se ja koristim regex‐om u Sigilu. (ovo radim u Code View s Regex Dotall) Moj početak ovisi o načinu kako sam došao do teksta u Sigilu(jeli prepravljam tuđi epub, koji su puni smeča tipa class="normal3"),ili sam sam došao do teksta pa onda izbjegnem to smeče.) Zna
či ako
prepravljam
tu
đi epub,
prvo
kod
očistim
od
sme
ča tipa
class="normal3" i ostalog
što
dodaju Word, Calibre,Abbyy i ostali. To se najčešće riješi m jednostavno da to (npr.
class="normal3")prekopiram u find – i pošto vidim da ovdje ima broj (znači da ima više tih normal
klasa) promijenim u class="normal\d"(\d u regex sintaksi označava bilo koju znamenku ) i replase all s ničim. Tu pazitm kako je u HTML označen italic i bold text,da ne ostanem bez istih. I tako
prekopiravam dalje to smeć u find i rješavam ga se(budući da znam HTML i CSS znam što brišem).
Postupak traje dok ne očistim čitav tekst.
Nakon toga knjigu provlačim kroz patterne iz tablica da se riješim grešaka u samome tekstu.
Onda sredim paragrafe, naslove poglavlja h1, h2, h3…Ovdje sve podesim da bude po mome
stylu(css). Ja imam svoj standardni CSS stil i knjigu sređujem po njemu, znači određujem
class="blablabla", naslovnu stranicu itd…
Nadam se da nije previše komplicirano napisano i da sam vam pomogao.