Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Regex tra gli apici

  1. #1

    Regex tra gli apici

    Ciao a tutti.

    Una domanda relativa alle espressioni regolari:

    avendo un testo simile a:
    vorrei riuscire a acquisire l'url pincopallino tralasciando il cicciambomba.

    al momento sto usando

    @(http://[^ ]+)@

    ma mi prende sia uno che l'altro e prende anche il carattere
    .

    Io con le espressioni regolari ho sempre avuto problemi ma mi sto facendo una piccola guida per riuscire a capirle (e tenere come memoria).

    Avete un'idea di come fare? Se si, potete spiegarmi anche il significato del codice che postate?

    Io pensavo a qualcosa del genere a livello logico:
    Prendi quello che inizia per http:// fino ad uno (spazio) o un (<) che non sia tra (") o (').

    Ma come realizzarlo??

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    codice:
    >(http[^<|\s]+)
    Questa intercetta il tuo caso, però non so se ti è sufficiente, comunque ti spiego come funziona.

    La regex intercetta il pattern

    http(qualsiasicosachevieneprima di uno spazio o un <) a patto che prima di questo pattern ci sia un >.

    quindi:

    > appunto è l'inizio della regola, se non comincia cosi o c'è uno spazio tra la parentesi angolare e http non funziona.

    ( le tonde servono a raggruppare, in pratica la regex ritorna true se viene trovato all'interno del testo il tuo pattern, ma poi se vuoi mettere in una variabile solo la parte che ti interessa la racchiudi tra parentesi tonde.

    http è la parte che deve seguire la parentesi angolare.

    [^<|\s]+

    Questo dice, fino a che non trovi < o \s (questo significato è dato dal ^) prendi tutti i caratteri che trovi (il + dice che ce ne deve essere almeno 1).

    \s è un'alias che individua uno o più spazi consecutivi.

    Il carattere | sta a indicare O uno O l'altro

    Le quadre raggruppano la regola per cui il + deve valere.

    Attento perchè i vari caratteri hanno significato diverso a seconda se sono dentro le quadre o fuori, ad esempio il carattere ^ se messo tra le quadre sta a indicare di prendere tutto tranne quello che soddisfa ciò che segue, se messo all'inizio della regex invece vuol dire che la stringa che devi testare deve iniziare con quello che poi tu scrivi.

    Spero di esser riuscito a spiegarmi.

    Se posso permettermi, faccio una premessa... non sono per niente affiliato all'autore e faccio pubblicità senza secondi fini. Io ho trovato eccezionale questo libretto:

    http://www.apogeonline.com/libri/9788850326655/scheda

    costa 7,50 euro e in poche pagine ti fa capire il 99% delle espressioni regolari.

    Ciao

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.