Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    51

    Regular Expression e "\"

    Per chi conosce le regular expression sarà qualcosa di banale, ma io sto avendo qualche piccolo problema a creare una stringa che contiene questa espressione regolare:

    Codice PHP:
    ^[^\ ][[:print:]]\{1,16\}[^\ ][,]\([[:digit:]]+\|\([[:digit:]]+\.[[:digit:]]*\)\)[,][0-3][0-9]\(0[1-9]\|1[0-2]\)$ 
    Come debbo gestire i caratteri "\"?

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Devi fare l'escaping col \, quindi due

    codice:
    \\

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

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

    Re: Regular Expression e "\"

    Originariamente inviato da marcoc84
    Codice PHP:
    ^[^\ ][[:print:]]\{1,16\}[^\ ][,]\([[:digit:]]+\|\([[:digit:]]+\.[[:digit:]]*\)\)[,][0-3][0-9]\(0[1-9]\|1[0-2]\)$ 
    Guarda anche che nelle regex in Java [[rint:]] o [[:digit:]] non sono costrutti "speciali" e quindi non fanno certo quello che forse stavi pensando. Poi fare [,] è inutile ... basta la virgola.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    51
    Il problema è che io non ci capisco niente di espressioni regolari e questa non lo scritta io.
    In teoria il matches dovrebbe essere vero per righe di questo tipo:

    0388E013TR-LF/,27935.35,0910
    0388E013TR-LF/,16569.47,0911
    0388E013TR-LF/,26554.61,0912
    0388E013TR-LF/,48847.83,1001

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da marcoc84
    Il problema è che io non ci capisco niente di espressioni regolari e questa non lo scritta io.
    In teoria il mather dovrebbe essere vero per righe di questo tipo:

    0388E013TR-LF/,27935.35,0910
    0388E013TR-LF/,16569.47,0911
    0388E013TR-LF/,26554.61,0912
    0388E013TR-LF/,48847.83,1001
    Innanzitutto cosa ci devi fare? Solo verificare la corrispondenza esatta di una stringa con la regex? O estrarre dati con dei "gruppi"??

    Comunque, dovrebbe essere:
    codice:
    String regex = "^\\p{Print}{1,16},\\d+(\\.\\d*)?,[0-3][0-9](0[1-9]|1[0-2])$";
    E se devi fare solo un matches(), allora ^ e $ agli estremi non serve. matches() controlla già che l'intero input corrisponda alla regex.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    51
    Debbo vedere solamente se le righe (prese singolarmente) sono nel giusto formato.

    Comunque mettendo la tua regExp funziona tutto perfettamente.

    GRAZIE MILLE!!!!

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.