PDA

View Full Version : [JAVA] "gioco" del matching con le regex?


b&w
28-02-2008, 19:18
Ciao a tutti i ragazzi del forum. :)
Avrei un così per dire un giochino da sottoporvi sul match di stringhe con le regex (regular expression)
perchè non riesco [:muro: :muro: ]a fare il match con delle stringhe che contengono caratteri
alfanumerici (\\w+) ma anche degli spazi (\\s+) e dunque per chi volesse provare questo giochino posto una porzione di codice che può essere usato velocemente :
public class Giochino{
public static void main(String[]args){
boolean forse_vinco = true;
String daMetchare = "picopallo-vinco srl ";
//da completare..... una regex è fatta così :mc:
String regex ="^ $";
if(daMetchare.match(regex)==forse_vinco)
System.out.println("Yes,non ho vinto nulla ma forse ho aiutato il prox e quindi son + contento");
else
System.out.println("L'importante è partecipare ;) grazie 1000 per aver partecipato ");

}
}

Grazie davvero a chi voglia aiutarmi ;)

wingman87
28-02-2008, 21:24
Questo codice è lollissimo, complimenti!



...non ho capito cosa non hai capito :stordita:

b&w
29-02-2008, 14:45
La regular expression che ti permette di vincere a qst meravigliosissimo game.

Purtroppo non ho abbastanza soldi per mettere in palio alcun che se non la mia conoscenza su java i qst forum :
;-)

Ciao a tutti.

||ElChE||88
29-02-2008, 16:18
if(daMetchare.match(regex)==forse_vinco)
matches casomai. :O

PS: Indenting :cry:

b&w
29-02-2008, 16:41
Verissimo :mc: ...
Il codice l'ho scritto di getto...e troppo alla veloce.:doh:

Grazie per la segnalazione.

||ElChE||88
29-02-2008, 16:44
Non ho ancora capito cosa stai chiedendo però... :fagiano:
Potresti spiegarlo un po' meglio? :D

wingman87
29-02-2008, 18:40
Forse ho capito, vuoi una regex che "matchi" "picopallo-vinco srl "?
Ce ne sono infinite credo, la più semplice che mi viene in mente è ".*"
Il punto significa qualsiasi carattere, l'asterisco significa che può esserci 0 o più volte.

Penso comunque che quello che volevi tu era capire un po' le regex, allora leggi il tutorial della Sun: LINK (http://java.sun.com/docs/books/tutorial/essential/regex/index.html)

b&w
02-03-2008, 13:04
I
Ce ne sono infinite credo, la più semplice che mi viene in mente è ".*"


Lo sò anche io che la più immediata sarebbe questa ma il comèilatore protesta e non riesco a fare il matches(). Credo di aver navigato per tanjto iterspazio ma non ho trovato una regex valida che faccia al mio caso:

Ho provato anche così:
String regex ="^(\\w+ \\'-' \\w+ \\s+ \\w+ \\s+)$";
Ma è sempre false .
Qualcuno avrebbe qualche altra interpretazione??

Grazie e buona giornata a tutti.

wingman87
02-03-2008, 19:29
A me funziona, questo è il codice che ho provato:
class Asd{
public static void main(String[]args){
boolean forse_vinco = true;
String daMetchare = "picopallo-vinco srl ";
//da completare..... una regex è fatta così
String regex =".*";
if(daMetchare.matches(regex)==forse_vinco)
System.out.println("Yes,non ho vinto nulla ma forse ho aiutato il prox e quindi son + contento");
else
System.out.println("L'importante è partecipare grazie 1000 per aver partecipato ");
}
}

EDIT: Con la tua regex no, ma è normale, non ha molto senso... dovrebbe essere così: "^(\\w+-\\w+\\s+\\w+\\s+)$"
EDIT 2: In effetti non servono neanche le parentesi: "^\\w+-\\w+\\s+\\w+\\s+$"