Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    457

    caratteri speciali in una regex

    buon pomeriggio,

    qualcuno potrebbe dirmi come si indica in un'eswpressione regolare il carattere "?

    ho provato ad inserire /",\",("),["], ma continua a darmi errore ..

    grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: caratteri speciali in una regex

    Originariamente inviato da Mitele
    qualcuno potrebbe dirmi come si indica in un'eswpressione regolare il carattere "?

    ho provato ad inserire /",\",("),["], ma continua a darmi errore ..
    Nelle regex i caratteri speciali possono essere resi non-speciali (quindi fa il match proprio con quel carattere) usando un backslash. E se la regex la metti in una stringa "letterale" nel sorgente, allora il backslash è a sua volta un carattere speciale, di cui devi fare l'escape con un altro backslash.

    Se vuoi matchare esattamente a.b (a punto b) e non 'a' poi "un qualunque carattere" poi b, la regex è a\.b e se la metti in una stringa literal:

    String expr = "a\\.b";
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di @DI3GO@
    Registrato dal
    Nov 2008
    Messaggi
    537
    Ma quindi ( curiosità mia per comprendere ) dovrebbe fare

    "\\"" per cercare il carattere "?

    Con la prima parte cerchi il literal e all'interno il carattere?
    Deduco in quanto il semplice \" non ha funzionato...
    Nipote: persona incompetente, con le soli doti di "copia/incolla" e la creazione automatica di siti internet ed interfaccie grafiche.Compie lavori apparentemente qualificati e richiesta una modifica sparisce in quatemala con i pochi soldi ottenuti.[...] Fonte la Diegonzelli

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da @DI3GO@
    Ma quindi ( curiosità mia per comprendere ) dovrebbe fare

    "\\"" per cercare il carattere "?

    Con la prima parte cerchi il literal e all'interno il carattere?
    Deduco in quanto il semplice \" non ha funzionato...
    "\\"" comunque è sbagliato, perché il doppio backslash fa mettere nella stringa un singolo backslash ma il " seguente non è quotato.

    String s = "a\"b";

    è corretto e nella stringa ci sono 3 caratteri 'a', apice doppio, 'b'. E questo basterebbe perché nelle espressioni regolari un apice doppio non è speciale!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    457
    ho provato a mettere \" nel mio codice , ma non funziona...non so come far capire a java che si tratti del carattere "
    codice:
    regex="^[a-zA-Z([^a-zA-Z])]*width=\"[12345]\d{2}\"\s[h]eight=((\b"\d{2}"\b)|("[12]\d{2}"))[a-zA-Z([^a-zA-Z])]*[^a-zA-Z]$"

  6. #6
    Il problema è qui (in rosso):

    codice:
    regex="^[a-zA-Z([^a-zA-Z])]*width=\"[12345]\d{2}\"\s[h]eight=((\b"\d{2}"\b)|("[12]\d{2}"))[a-zA-Z([^a-zA-Z])]*[^a-zA-Z]$"
    In pratica così chiudi le virgolette che delimitano la stringa regex.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    457
    scusami mi sono sbagliato a scrivere , io li chiudo cosi' \" ma resta il fatto che non funziona e sinceramente anch'io mi stupisco

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.