Vim keresési probléma

Fórumok

Sziasztok!

Lenne egy nagyon aranyos feladat, amit meg kellene oldanom, de a megoldásra még sajnos nem jöttem rá, így a segítségeteket kérem! :(

A feladat szövege a következő:

"A mellékelt szövegben távolság, idő, és tömeg mennyiségek szerepelnek, pl.
3; 5 km. A mennyiségek a következő részekből állnak: Egy szám, melyben
szerepelhet legfeljebb egy tizedes vessző. A tizedesvessző után nulla vagy
több számjegy állhat még. Ezt egy szóköz követi, majd legfeljebb egy
el®tag, (pl. kiló- (k), mili- (m), vagy nano (n)), és végül egy mértékegység
(m, s, vagy g). Nyissuk meg a szöveget Vim-mel és keressük meg az összes
mennyiséget, amelyre illik a fenti minta."

A mellékelt szöveg lehet tetszőleges, a fenti a paraméterekkel!

Előre is köszönöm a segítséget!

Hozzászólások

Hát ha tanulni akarsz belőle, akkor legjobb ha te magad csinálod meg. Írd be googleba, hogy "vim regular expressions".

Minden leírt tagnak egyszerű a regexpes megfelelője, sorrendben egymás mögé írod:
- "1 vagy több" számjegy
- "1 db" szóköz "VAGY" "1 db" vessző majd "0 vagy több" számjegy majd "1 db" szóköz
- "0 vagy 1" előtag [kmn]
- "1 db" mértékegység

már csak az "1 vagy több", "0 vagy 1", "1 db", "0 vagy több" regexpes megfelelőjét kell kikeresned, és a "VAGY" operátort.

a szám [0-9]
a tizedes pontot escape-ld ki \.
az egy vagy több valami esetén a * a nyerő
a space-t szintán ki kell escape-lni
a betű [a-z] abiből kettő van egymás mögött a mintában

érted?!

most már nagyon nagyon nagyon sokat segítettünk

Figyelem! Alább a cselekmény részletei következnek, akár a végkifejlet is szerepelhet!

:D

[0-9]+(\.[0-9]*)?\ [kmn]?[msg]
vim számára escape-elve:
[0-9]\+\(\.[0-9]*\)\?\ [kmn]\?[msg]

~~~~~~~~
De ezt az egy lépést ki nem tevé,
Az nem tett semmit, nem tud semmit is.