%r{\.(gif|jpg|png)$}i

So a grandi linee il significato di questa espressione, ma non mi
completamente chiara (ad esempio “%r{}”)
Qualcuno di voi saprebbe spiegarmela passo passo?

Non c’ un modo pi chiaro per scriverla?

E’ difficile riscriverla in modo pi semplice, perch veramente basilare,
cmq:

%r{regex} == regular expression, l’equivalente di /regex/

Adesso vediamo cosa dice la regular expression che ti interessa:

.(gif|jpg|png)$

. == un punto, parlo proprio del carattere :slight_smile: - necessario l’escape
del punto . perch il punto non preceduto da backslash, nel mondo
delle regular expression significa qualsiasi carattere.

(gif|jpg|png) == uno qualsiasi tra gif, jpg o png

$ == fine della stringa.

Infine la i dopo la parentesi graffa significa “insensitive”, ovvero
la regular expression fa il match sia su caratteri maiuscoli che
minuscoli.

2012/1/4 Luca B. [email protected]:

Giovanni mi ha battuto sul tempo!

Puoi testare le regular expression su rubular.com !

Il giorno 04 gennaio 2012 12:15, Giovanni I. [email protected] ha
scritto:

del punto . perch il punto non preceduto da backslash, nel mondo
2012/1/4 Luca B. [email protected]:

[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


Matteo C.
Ufficio Reti e Sistemi
Universit degli Studi di Ferrara
Tel. 0532 97 4153

%r{regex} == regular expression, l’equivalente di /regex/

Infatti mi ricordavo di aver studiato quella dicitura, perch si usa
questa
qui? E’ l’equivalente in ruby? O c’ qualche altro motivo?

Grazie mille anche a te Matteo che hai condiviso il prezioso link!

Il giorno 04 gennaio 2012 12:20, Matteo C. [email protected] ha
scritto:

Anche secondo me è più chiara la sintassi /regexp/
Comunque per provare una regexp al volo:

irb(main):044:0> /.(gif|jpg|png)$/i === “pippo.jpg”
=> true
irb(main):045:0> /.(gif|jpg|png)$/i === “pippo.xml”
=> false

oppure il metodo match della classe string:

irb(main):047:0> “pippo.xml”.match(/.(gif|jpg|png)$/i).to_s
=> “”
irb(main):048:0> “pippo.jpg”.match(/.(gif|jpg|png)$/i).to_s
=> “.jpg”

%r{regex} == regular expression, l’equivalente di /regex/

Infatti mi ricordavo di aver studiato quella dicitura, perch si usa questa
qui? E’ l’equivalente in ruby? O c’ qualche altro motivo?

Puo` essere utile se hai una regexp con delle /

//// per esempio.

%r{//} e un po' piu chiaro.

Altrimenti non lo userei, perche e piu` chiaro //


David N. Welton

http://www.welton.it/davidw/

http://www.dedasys.com/