wyrażenia regularne

Witam!

Mam (najprawdopodobniej prosty) problem z Ruby. Do tej pory bawiłem się RoR, ale teraz zostałem zmuszony do wgryzienia się w niewielki skrypt Ruby.

W skrypcie jest sprawdzanie wyrażeń regularnych, które są tak naprawdę plikami, których sprawdza się wiek.

Wygląda to mniej więcej tak:

reg = Regexp.new(“lpt$vpn.195”) # to już po moich zmianach, praktycznie bez wyrażenia regularnego, żeby znalazło choć jeden z tych plików, ale i tak nie działa…

a potem:

if File.stat($dir + file).file? and reg.match(file) # nic do tego nie pasuje

pliki, które sprawdzam, to np.

lpt$vpn.193
lpt$vpn.195

problemem jest najprawdopodobniej znak $, który należy do wyrażeń regularnych, ale $ nie działa…

Wie ktoś może jak w Ruby dobrze zapisać wyrażenia regularne takich plików, bo próbowałem robić to samemu z stron w których wyrażenia regularne w Ruby były opisane, ale nic mi z tego nie wyszło…

Za jakąkolwiek pomoc będzę bardzo bardzo wdzięczny.

Pozdrawiam!

PS. Przepraszam, jeśli nie powinienem tutaj pisać ściśle o Ruby zamiast RoR

[code=ruby]files = %w(lpt$vpn.193 foo bar lpt$vpn.195)
reg = Regexp.new(‘lpt\$vpn\.\d+’)

lub

reg = /lpt$vpn.\d+/

puts files.grep(reg)[/code]

O! :slight_smile: Będzie przydatne napewno :slight_smile:

Mam tylko jeszcze jedno pytanko. Do $dir będę miał wczytaną pierwszą część pliku. Czy jest jakaś funkcja, która pozamienia np. $ na \$ ?

bo jak zrobię tak:

reg = Regexp.new(’#{$dir}\.\d+’)

to plik lpt$vpn.123 się nie dopasuje…

Regexp.escape("$")