Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Francis87
    Registrato dal
    Jun 2003
    Messaggi
    5,970

    [regexp] dividere testo... :/

    ciao

    sto cercando di capire come funzionano le regexp.. ed in particolare non capisco come fare a dividere un testo (pezzo di css) in due valori dell'array con i matches.

    questa la regexp che dovrebbe trovarmi la definizione dello stile css per un elemento
    codice:
    /^[a-z]*(\.|:|#)?[\w_\s]*\{\n?[\w\W\s\n]*\}/
    ma se io inserisco questo come dati:
    codice:
    elemento { attribute: value; } 
    #id { at: val; }
    non ottengo con
    Codice PHP:
    preg_match($pattern$_POST['text'], $match); 
    in $match
    codice:
    $match[0] elemento { attribute: value; }
    $match[1] #id { at: val; }
    ma
    codice:
    $match[0] elemento { attribute: value; } #id { at: val; }
    cosa dovrei mettere?
    Heaven's closed. Hell sold out.

    Linux 2.6.26-2-amd64
    Debian squeeze

  2. #2
    Utente di HTML.it L'avatar di Francis87
    Registrato dal
    Jun 2003
    Messaggi
    5,970
    up
    Heaven's closed. Hell sold out.

    Linux 2.6.26-2-amd64
    Debian squeeze

  3. #3
    $css = "
    elemento {
    attribute: value;
    }
    #id {
    at: val;
    }
    ";

    $matches = Array();
    preg_match_all( "/(?i)[a-z]+[\.|\:|\#]?[^\{]*\{[^\}]+\}/i", $css, $matches );

    echo '<pre>';
    var_dump( $matches );
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  4. #4
    Utente di HTML.it L'avatar di Francis87
    Registrato dal
    Jun 2003
    Messaggi
    5,970
    grazie mille

    a cosa corrisponde la "i" nella regexp?
    Heaven's closed. Hell sold out.

    Linux 2.6.26-2-amd64
    Debian squeeze

  5. #5
    Originariamente inviato da Francis87
    grazie mille

    a cosa corrisponde la "i" nella regexp?
    Il manuale ha la risposta a tutto

    http://www.php.net/manual/it/pcre.pattern.modifiers.php
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

  6. #6
    Utente di HTML.it L'avatar di Francis87
    Registrato dal
    Jun 2003
    Messaggi
    5,970
    Originariamente inviato da gm
    Il manuale ha la risposta a tutto

    http://www.php.net/manual/it/pcre.pattern.modifiers.php
    VVoVe:
    scusate! x quanto abbia cercato di tutorials e simili sulle regexp non ero mai arrivato lā!

    grazie mille d nuovo
    Heaven's closed. Hell sold out.

    Linux 2.6.26-2-amd64
    Debian squeeze

  7. #7
    Utente di HTML.it L'avatar di Francis87
    Registrato dal
    Jun 2003
    Messaggi
    5,970
    c'č ancora una cosa che non mi č chiara...
    il significato di:
    codice:
    /(?i)[a-z]+[\.|\:|\#]?[^\{]*\{[^\}]+\}/i
    Heaven's closed. Hell sold out.

    Linux 2.6.26-2-amd64
    Debian squeeze

  8. #8
    Utente di HTML.it L'avatar di Francis87
    Registrato dal
    Jun 2003
    Messaggi
    5,970
    Originariamente inviato da Francis87
    c'č ancora una cosa che non mi č chiara...
    il significato di:
    codice:
    /(?i)[a-z]+[\.|\:|\#]?[^\{]*\{[^\}]+\}/i
    ok, quello l'ho capito..
    ma come mai questo nn va?

    cerco di prendere ogni attributo+valore con questo
    Codice PHP:
     for ($a=0;$a<$n;$a++) {
      
    preg_match_all('/(?im)[a-z]+[\:][\s]?[a-z]+/'$match[$a], $match2);
     } 
    e parso ogni valore del primo array (che contiene i singoli blocchi di css)

    ma come mai l'output č questo?
    match
    array(2) {
    [0]=>
    string(38) "body {
    color: red;
    font: arial;
    }"
    [1]=>
    string(25) "
    #id {
    color: blue;
    }"
    }

    match2
    array(2) {
    [0]=>
    string(10) "color: red"
    [1]=>
    string(11) "font: arial"
    }
    dovrei avere anche color: blue nell'array match2, no?
    Heaven's closed. Hell sold out.

    Linux 2.6.26-2-amd64
    Debian squeeze

  9. #9
    Originariamente inviato da Francis87
    dovrei avere anche color: blue nell'array match2, no?
    certo, ma se per ogni ciclo del for ripopoli $match2 avrai sempre un solo array con il match dell' ultimo $match[$a] parsato ...

    for ($a=0;$a<$n;$a++) {
    preg_match_all('/(?im)[a-z]+[:][s]?[a-z]+/', $match[$a], $match2[$a]);
    }
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  10. #10
    Utente di HTML.it L'avatar di Francis87
    Registrato dal
    Jun 2003
    Messaggi
    5,970
    grazie mille
    Heaven's closed. Hell sold out.

    Linux 2.6.26-2-amd64
    Debian squeeze

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.