Visualizzazione dei risultati da 1 a 8 su 8

Discussione: regular expression

  1. #1

    regular expression

    con le regular expression vorrei, dato un path del tipo: "c:\dir1\dir2\dir3\dir4\dirX\dirY" selezionare il percorso precedente le ultime 2. si tenga presente che in questo caso sono 4 ma i sottolivelli non sono noti a priori.

    ho scritto

    (\w*)\^((\w*)\(\w*))$

    ma non funziona, anche se provato singolarmente
    ((\w*)\(\w*))$
    mi restituisce dirX\dirY

    a me serve avere invece
    c:\dir1\dir2\dir3\dir4

    come fare?

  2. #2
    prova con qualcosa di simile, non è un espressione regolare ma può esseti utile ...

    $t = "c:\dir1\dir2\dir3\dir4\dirX\dirY";
    $tt = explode('\\', $t);
    $t = implode('\\', array_splice($tt, 0, count($tt)-2));

    print $t;

  3. #3
    eheheh...
    lo so ma a ma serve come espressione regolare... nn e' detto che possa implementarla in php e quindi le espr regolari sono l'unica cosa che mi puo' salvare.

  4. #4
    scusa ... ma tu usa una cosa tipo

    (\w*)\\

    in modo che tu tiri fuori tutti i blocchi e poi e elimini gli ultimi 2 blocchi dai dati ritornati
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  5. #5
    bh si potrei fare ma xkè scrivere 10 righe di codice se con una sola si potrebbe fare?

    in fondo le reg expr ci sono x quello...

  6. #6

    Re: regular expression

    Originariamente inviato da speriamobene
    [...]
    ho scritto
    (\w*)\^((\w*)\(\w*))$
    [...]
    come fare?
    hai messo il carattere di inizio stringa ^ a metà, credo sia per quello che non funge. Devi metterlo all'inizio. Oltertutto nella prima sottoregola (\w*) la classe non contiene il carattere di escape e i due punti. Prova così (in php)
    codice:
     ^([\w:\\\]*)\\\(\w*)\\\(\w*)$
    Per la portabilità potrebbero esserci differenze per il carattere di escape.
    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 speriamobene
    bh si potrei fare ma xkè scrivere 10 righe di codice se con una sola si potrebbe fare?

    in fondo le reg expr ci sono x quello...
    le regexp sono fatte per analizzare dei dati specifici ... se i dati mutano in maniera non prevedibile non sono più adatte

    i parser mica fanno uso delle espressioni regolari ^^
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  8. #8

    Re: Re: regular expression

    Originariamente inviato da Anªkin
    hai messo il carattere di inizio stringa ^ a metà, credo sia per quello che non funge. Devi metterlo all'inizio. Oltertutto nella prima sottoregola (\w*) la classe non contiene il carattere di escape e i due punti. Prova così (in php)
    codice:
     ^([\w:\\\]*)\\\(\w*)\\\(\w*)$
    Per la portabilità potrebbero esserci differenze per il carattere di escape.
    hai ragione...
    proverò e ti faro' sapere. grazie.

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.