Ricerca tra la vecchia roba

!No comment

Posted: Dicembre 8th, 2007 | Author: | Filed under: Life, Programmazione | Commenti disabilitati su !No comment

W le regexp e le giornate passate con il mal di testa dovuto a troppe birre e al Jazz…. 

/*
 *  Questa funzione prende come argomento una variabile contenente dati XML e
 *  effettua il parsing restituendo il contenuto tra queste <tag>.
 *
 *  tag:        nome della tag da cui ottenere il contenuto
 *  xml:        variabile contenente l’XML da parsare
 */
function get_contents_between_tag(tag,xml){
  /*
   * questa mi ha procurato molti fastidi: devi trovare tutte le occorrenze tra
   * <tag> e </tag> con all’interno altre tags innestate includendo ritorni a
   * capo (‘n’) e cercando di essere ‘pigro’ (con il carattere ? dopo * vedi
   * pg 65 di "Espressioni regolari" Apogeo 7.50€ spesi bene alla fine")
   *
   * Alla fine potevo pure fare un parsing preliminare per togliere ritorni a
   * capo e tab e poi fare tutto questo! ma sono un picio e alla fine ho impa-
   * rato pure la pigrizia delle regexp!!!
   *
   * P.S: è più lungo il commento che la funzione.
   */
  var pattern = "<"+tag+">([\n</>a-zA-Z0-9. ]*?)(</"+tag+">)";
  var re = new RegExp(pattern,"g");
 
  /*creiamo variabile backreference che prenda il contenuto delle tag*/
  var backreferences = new Array();
  for( var index = 0 ; (match = re.exec(xml)) != null; index++ ){
    backreferences[index] = match[1];
  }
  return backreferences;
}

Per info sull’uso delle regex su firefox vedi  Core Javascript 1.5 Guide:Regular Expressions


Comments are closed.