Visualizzazione dei risultati da 1 a 9 su 9

Discussione: aiuto con regex

  1. #1

    aiuto con regex

    praticamente ho un file così:

    pippo = pluto
    ciao = miao

    e mi serve una regex per sapere cosa c'è prima di ' = ' e cosa c'è dopo... come posso fare?

    codice:
    <pre><?
    	$aa = 'main = aaa\nciao = pippo';
    
    	preg_match_all('|(.+) = (.+)|U', $tpl_config, $result);
    	
    	print_r($result);
    	
    ?></pre>
    come posso fare? grazie e ciao!

    $result è vuoto...
    PaTeR
    From Ban to Life

  2. #2
    ehm, $aa deve andare al posto di $tpl_config?
    cmq :
    codice:
    preg_match_all('/(.+)=(.+)(?:\\\\n|$)/U', $aa, $result,PREG_SET_ORDER);
    dA .. foto di viaggio
    L'esperienza è il tipo di insegnante più difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  3. #3
    Originariamente inviato da Anªkin
    ehm, $aa deve andare al posto di $tpl_config?
    cmq :
    codice:
    preg_match_all('/(.+)=(.+)(?:\\\\n|$)/U', $aa, $result,PREG_SET_ORDER);
    Me la potete spiegare un pò? grazie mille!
    PaTeR
    From Ban to Life

  4. #4
    ehm... però non funziona con i file con \n!

    main = main.tpl
    pippo = pluto.tpl

    mi riconosce solo pippo = pluto.tpl come mai?
    PaTeR
    From Ban to Life

  5. #5
    preg_match_all('/(.+)=(.+)/m', $testo, $result);

    se nn erro serve il modificatore m

    se per caso non va prova s come modificatore ... è uno dei due ... comunque mi pare al 90% che sia m

  6. #6
    Originariamente inviato da PaTeR non PeTeR
    ehm... però non funziona con i file con \n!

    mi riconosce solo pippo = pluto.tpl come mai?
    Perchè il mio cervello, vedendo un'unica riga, ha ignorato la corretta soluzione multilinea di daniele e perche gli a capo in genere sono \r\n e non \n.
    dA .. foto di viaggio
    L'esperienza è il tipo di insegnante più difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  7. #7
    Originariamente inviato da Anªkin
    Perchè il mio cervello, vedendo un'unica riga, ha ignorato la corretta soluzione multilinea di daniele e perche gli a capo in genere sono \r\n e non \n.
    :master: :master: :master:

    non capisco cosa tu voglia dire... comunque... ho un'altro problemino, non so se è dovuto alla regex, ma nel risultato mi include anche un carattere di 'a capo'... praticamente io devo ottenere da

    ciao = miao
    pippo = pluto

    un array così:

    $array['ciao'] = 'miao';
    $array['pippo'] = 'pluto';

    il problema si pone perchè devo compiere operazioni su file con 'miao' e 'pluto' e perciò ( penso sia dovuto al \n o al \r\n ) file_get_contents mi dà un INVALID ARGUMENT...

    Ipotesi?


    -----

    Edit:

    Avendo un'espressione così:

    /(.+)\040=\040(.+)\\r\\n/m

    giustamente non mi aggiunge il \r\n alla fine... però non è detto che ci sia! come posso fare per stabilire che è 'opzionale' ?

    /(.+)\040=\040(.+)(\\r\\n){0,1}/m

    questo non mi ha portato da nessuna parte...

    @Anªkin: scusa ma mi ero dimenticato che il carattere di newline poteva essere anche \r\n...
    PaTeR
    From Ban to Life

  8. #8
    Originariamente inviato da PaTeR non PeTeR

    @Anªkin: scusa ma mi ero dimenticato che il carattere di newline poteva essere anche \r\n...
    figurati, sono io che me lo dovevo ricordare

    Cmq avendo chiaro ciò che devi fare direi che se i dati sono sempre in questa forma:
    codice:
     parola_singola = parola_singola\r\n
    ti basta addirittura una cosa del genere
    codice:
    preg_match_all('/\w+/',$txt,$result);
    
    // se preferisci come era prima
    preg_match_all('/(\w+)\s=\s(\w+)/',$txt,$result);
    dA .. foto di viaggio
    L'esperienza è il tipo di insegnante più difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  9. #9
    preg_match_all('/([^=]+?)=([^\n]+?)/m', $testo, $result);

    prova questa

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.