Visualizzazione risultati 1 fino 6 di 6

Discussione: Espressioni regolari

  1. #1
    Guest

    Predefinito Espressioni regolari

    Sto cercando di utlizzare le espressioni regolari per rimpiazzare la stringa

    [ link=url]titolo[/link]

    in

    <a href="url" target="_blank">titolo</a>

    Per far questo ho utilizzato questa espressione regolare:

    \[[lL]{1}[iI]{1}[nN]{1}[kK]{1}=((f|ht){1}tp://)?([-a-zA-Z0-9@:%_\+.~#?&//=]+[^\]]*)\]([\w\W]+[^\[]*)\[/link\]

    quindi i valori sarebbero questi:

    url = \\1\\3
    titolo = \\4

    Il problema è che questo non funziona, qualcuno sa dirmi perchè?
    Ultima modifica di ivano85 : 14-11-2005 alle ore 14.59.37

  2. #2
    Guest

    Predefinito

    Perchè è un caos e il motore PCRE si rifiuta di leggerla

    Nella tua regexp, la cosa che mi è saltata subito all'occhio è questa:
    [\w\W]+
    Che vuole dire? tutto quello che è una parola ma anche tutto quello che non lo è ... contradditoria, direi
    Forse c'è qualcos'altro ma ora non ho proprio voglia di leggerla a fondo, sorry

  3. #3
    Guest

    Predefinito

    Questo è quello che uso nel mio deForum:
    Codice PHP:
    $trg_testo=eregi_replace("([^=])(http){1}(://){1}([^<>[:space:]]+)"," <u><a href=\"http://\\4\" target=\"_blank\">\\2\\3\\4</a></u> ",$trg_testo);
    Ciaoo!!!!!!

  4. #4
    Guest

    Predefinito

    solo una nota, anzi 2
    la regex di Debug è per la formattazione degli url senza tag (cioè senza [link=])
    Inoltre è preferibile usare preg_replace invece di eregi_replace perchè leggermente più veloce

  5. #5
    Guest

    Predefinito

    Visto che stava tentando di procedere con le regex gli ho postato un esempio sul quale studiare, invece che la pappa pronta ;)
    Questo non annulla ovviamente le tue note ;)


    Ciaooo!!!!!

  6. #6
    Guest

    Predefinito

    Si, la nota non era ovviamente rivolta a te debug, ma a chiunque fosse interessato alla discussione e alle prime armi con le espresioni regolari.
    dato che ci sono posto un esempio pure io

    \[url=(http|https|ftp)://([^\]]+)\](.*?)\[url\]

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •