Regulesprimoj
Regulesprimoj ebligas serĉi kaj anstataŭigi tekstelementojn per malsimplaj skemoj.
Ili estas kreitaj origine de Ken Thompson en la 1960-aj jaroj
por qed, polinia uniksa redaktilo, kaj poste aperis en
grep, dosiertraserĉilo. Nuntempe ili estas uzeblaj en preskaŭ ĉiuj programlingvoj kaj en
multaj profesiaj redaktiloj.
Serĉado de signoj
Leciono 1
Regulesprimoj uzas ordinarajn literojn kaj signojn kaj specialsignojn. Literoj kaj ciferoj
reprezentas sin mem, do ne estas specialsignoj. Ofte oni metas regulesprimon inter strekojn
‘/’, sed tio iom varias laŭ programlingvo kaj redaktilo. Do /e/ serĉas aperon de litero e.
Se oni volas serĉi specialsignon oni devas antaŭmeti \.
Oni povas provizi regulesprimon per aldonaj flagoj. Ekzemple la flago g (angle: global),
serĉas ĉiujn aperojn de la serĉteksto: /e/g.
Per la rektaj krampoj oni povas serĉi alternativajn signojn. Ekzemple /[abc]/ serĉas pri
aperoj de iu el la literoj a, b aŭ c. Se la serĉataj signoj reprezentas intervalon en la
kodo (Askio, do supersigna ĉ ne estas en la intervalo a-d) -
do ekzemple estas en alfabeta ordo, oni povas uzi streketon por doni la intervalon:
/[a-d]/ serĉas pri la unuaj kvar literoj de la latina alfabeto.
Ĉar [ kaj ] estas specialsignoj, por serĉi rektajn krampojn, vi devas skribi
tiel: \[ respektive \].
Taskoj
- Kontrolu ĉu la litero
uaperas en la teksto - Trovu ĉiujn
uen la teksto - Trovu ĉiujn vokalojn en la teksto
- Trovu ĉiujn ciferojn en la teksto
Leciono 2
Komencon oni sigas per specialsigno ^, do /^a/ trovas literon a nur, se ĝi aperas en la komenco
de la teksto. Simile $ signas finon de la teksto, ekz-e /o$/.
Taskoj
- Kontrolu, ĉu la teksto komenciĝas per iu el la literoj k, m aŭ n
- Kontrolu, ĉu la teksto finiĝas per vokalo
- Kontrolu ĉu la teksto komenciĝas per majusklo
Leciono 3
La punkto . reprezentas ciun ajn signon (literon, ciferon ktp.).
Se vi volas serĉi punkton anstataŭe, vi devas ‘eskapi’ gin tiel:
/\./.
Per la specialsigno ? oni esprimas, ke la antaŭa signo povas okazi aŭ ne.
Do ekz-e la esprimo 11? trovas unu aŭ du sisekvajn unuojn.
Dum 1.1 trovas du unuojn kun iu ajn signo inter ili, ekz-e 1a1
aŭ 1:1 aŭ 111.
Taskoj
- Trovu ĉiujn aperojn de vokalo sekvata eventuale de litero
g - Trovu ĉiujn aperojn de vokalo sekvata de spaco
- Trovu ĉiujn aperojn de du vokaloj kun iu ajn intera signo
Leciono 4
Taskoj
- Trovu ĉiujn ciferojn kun sekvanta
aen la teksto - Trovu ĉiujn signojn, kiuj ne estas vokalo
- Trovu ĉiujn signojn kiuj estas nek vokalo, nek spaco, nek cifero
- Trovu ĉiujn du signojn, inter kiuj ne troviĝas vokalo
- Trovu ĉiujn vokalojn kun unu aŭ du sekvantaj signoj, kiuj ne estas spaco
Leciono 5
…
Taskoj
- Trovu ĉiujn vokalojn en vortkomenco
- Trovu ĉiujn spacojn inter vortoj
- Trovu ĉiujn vortojn kiuj havas kvin aŭ malpli da literoj
Ripetoj serĉante en alia teksto
Teksto: Feritagoj estas 3a de Junio, 20a de Aŭgusto ĝis 1a de Septembro, unua semjano en la
komenco de Novembro
Taskoj
- Trovu ĉiujn ciferojn en la teksto
- Kontrolu, cu la teksto komenciĝas per minusklo
- Trovu ciferojn sekvatajn de punkto aŭ litero
a.
Leciono 6
Taskoj
- Trovu ĉiujn du signojn inter kiuj ne estas vokalo
- Trovu ĉiujn vokalojn sekvataj de unu aŭ du postaj signoj, kiuj ne estas spacoj
- Trovu ĉiujn vortojn, kiuj enhavas ne pli ol unu vokalon
Serĉado de vortoj
Teksto: Feritagoj estas 3a de Junio, 20a de Aŭgusto ĝis 1a de Septembro, 27a de Septembro, unua semjano en la
komenco de Novembro
Taskoj
- Trovu ciujn somermonatojn en la teksto
- Trovu, ĉu iu monato ripetiĝas
- Trovu ĉiujn datumojn donitajn per tago+monato
- Trovu datintervalojn (de…ĝis)
Serĉi kaj anstataŭigi
Taskoj
- Anstataŭigu ĉiujn
uperŭ - Anstataŭigu ciujn aperojn de
AŭgustoperSeptembro - Forigu ĉiujn tagindikojn antaŭ iu monato
Taskoj
- Anstataŭigu ĉiujn tagindikojn kun nur unu cifero per
0+cifero - Anstatŭigu vortumon
en la komenco de+monato perde+monato
Jen resumo pri la lernitaj aferoj…
| Signo | Signifo | Ekzemplo |
^ |
komenco | ^kor |
$ |
fino | aŭ$ |
. |
ĉiu signo | k.r. |
[] |
iu el la enkrampigitaj literoj | ^pl[iu]$ |
[^] |
iu signo krom la enkrampigitaj literoj | ^kor[^tv]o$ |
? |
nul aŭ unu da | ^ko[r]v?o$ |
* |
nul aŭ pli da | ^k[ore]*o$ |
+ |
unu aŭ pli da | ^k[ore]+o$ |
| |
alternativo | (pli|plu) |
[[:<:]] |
vortkomenco - por serĉi en plurvortaĵoj | [[:<:]]kubo$ |
[[:>:]] |
vortfino - por serĉi en plurvortaĵoj | a[[:>:]] k.+o$ |