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

provteksto:

Mia naskiĝtagfesto estas je la 15a de Aŭgusto

/ /

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, bc. 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 u aperas en la teksto
  • Trovu ĉiujn u en 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 1a11:1111.

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 a en 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ŭgustoper Septembro
  • 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 per de+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$