Newsgroup: it.comp.lang.javascript
Titolo: Funzione match() e regex

Ciao a tutti.
Sto leggendo un sorgente di uno script non mio e mi sono trovato di
frone ad un'espressione come questa:
 id = text.match(/art\d+\.[htmlph]|art-\d+\.[htmlph]/i)[0];
Ora, io le regex le ho studiate tempo fa, e sarebbe ora che me le
ristudiassi un po' ;-), però non ho ben capito due cose di questa regex:
	1- [htmlph] serve a matchare... cosa? "html" o "php", immagino. ma
matcherebbe anche "phtml"? se sì, a che serve quell'ultima 'h' tra
parentesi quadre? non è superflua?
	2- IIRC, il carattere '|' significa "oppure". però io ricordavo
quest'uso sempre tra parentesi tonde. ad es. la regex /(a|b)c/ matcha
"ac" oppure "bc". in questo caso le parentesi tonde non ci sono. vuol
dire che è come se alla funzione match() venissero passate due regex e
se la stringa non matcha la prima, viene provata la seconda? se è così,
questa è una caratteristica "delle regex" o della funzione JS match()?
Grazie in anticipo, Francesco

 Grazie in anticipo, Francesco
De nada.
-- 
~ Se i miei cattivi pensieri non fossero caricati a salve, ogni giorno
sarebbe una strage.

 No, č indipendente da questo.
Sě, questa era un'idiozia, ci ho pensato dopo.
Ciao e grazie, Francesco

Ciao Zero
mi piacerebbe approfondire le regexp:
Domanda: visto che combatti pure tu con le vecchie asp: i principi di 
funzionamento delle regex in asp e javascript sono gli  stessi ?
Conosci qualche link in italiano che possia dare una introduzione "decente" 
alle regex ?
Poi, giuro che passo alla documentazione ufficiale !
:-)
grazie

 vedrò di contattare l'autore per capire che intenzioni aveva...
Se ne hai modo, credo sia la soluzione migliore. :)
-- 
~ "Non sono solitamente un uomo che prega,
ma se sei lassù, per favore salvami,Superman."
(Homer Simpsons)

 grazie
De nada.
-- 
~ Ci si aspetta di tutto, ma non si e' mai preparati a nulla.
(M.Swetchine)

 "decente" alle regex ?
in italiano c'e' poco... fondamentalmente
http://a2.pluto.it/a2736.htm#almlindex13063
se poi hai tempo, c'e' sempre la documentazione delle RE implementate in
perl (da prendere cum PARECCHIO grano salis)
http://perldoc.perl.org/perlre.html
-- 
By ZeD


wrote:

Ciao.
Mi è capitato sotto mano oggi
spero ti possa servire ;)
http://www.kerouac3001.com/espressioni-regolari-guida-base-50.htm
quoto Zero per quanto riguarda la reference di MVC
che si sta rifacendo il look ;)

 compito che deve assolvere; ma la suddetta regexp in pratica ...
E' la prima regexp su cui mi è caduto l'occhio, spulciando tra i
sorgenti di Forum Additive (non so se la conosci, è un'utile estensione
per Firefox). Ho appena inviato un'email all'autore (italiano).
La riga di codice originale (splitto la regexp sugli '|') è:
  tID=textRow.match(/
                     t=\d+|
                     topic\d+\.[htmlph]|
                     vt-\d+\.[htmlph]|
                     -t\d+.[htmlph]|
                     viewtopic-t-\d+\.[htmlph]
                    /i)[0];
...contenuta nella funzione getThreadID().
Una domanda: quale array verrà restituito da questa match() in caso di
successo? Il primo elemento di tale array ([0]), sarà, come dice il nome
della funzione, l'ID numerico del thread?
Ciao, Francesco

> mi piacerebbe approfondire le regexp:
    ...skipped!
Poiché sono IT mi aggancio al thread. :-)
Mi sono perso con una regexp di una banalità incredibile.
Quello che deve fare è matchare del testo che può presentarsi in due
modi: "bla" oppure "bla,bla".
Nel primo caso deve cancellare il testo, nel secondo sostituirlo con un
font. Per farlo mi servono due replace, con una non ci sono riuscito.
Impossibile da fare o sono rincoglionito? :-/
-- 
    * b *
  *   y   *
*   Piero   *
[ /ad audiendum verbum/ ] 

 Per farlo mi servono due replace, con una non ci sono riuscito.
Puoi farlo anche con un unico replace, se passi una funzione invece di
una stringa, così da specificare la logica di sostituzione.
-- 
~ Il computer è una macchina progettata per velocizzare e
automatizzare
gli errori.

 una stringa, così da specificare la logica di sostituzione.
Mi potresti fare un esempio, basato su quanto descritto nel primo post?
Thanks.
-- 
    * b *
  *   y   *
*   Piero   *
[ /do ut des/ ] 

 una stringa, così da specificare la logica di sostituzione.
Sorry, ho capito solo dopo aver inviato l'altro post.
La richiesta verteva anche sul fatto di ridurre la stringa, ma se devo 
aggiungere una funzione preferisco due replace. ^_^
-- 
    * b *
  *   y   *
*   Piero   *
[ /in medio stat virtus/ ]