2009-12-16 4 views
0

je besoin d'un Regex pour le faire (attraper que des mots réels):Java: Simple question regex, des mots complets

inputString:

hello,[email protected] 

processus:

String theMagicRegEx = "?????"; 
String[] arrayvar = asdf.split(theMagicRegEx); 

sortie (tableauVar) devrait être ceci:

hello 
sdfsdf 
yahoo 
email 
com 

Question: Quelle est la valeur de theMagicRegEx?

Merci beaucoup

Répondre

3

Essayez str.split("[\\W\\d_]+");.

Ceci laissera seulement des caractères de mot, aucun chiffre ou trait de soulignement.

5

Essayez \W+ (caractères non-mot)

+1

+1. 'str.split (" \\ W + ");' pour être exact. – Amarghosh

+2

... mais sachez que les nombres et le trait de soulignement (_) font aussi partie de '\ w' et qu'il n'y aura donc pas de division dans' good4you', par exemple. –

+0

Comment j'intégrerais ces personnages aussi? – David

3

Donc, vous voulez diviser la chaîne de caractères non-mot? Là, vous avez le \W pour. Voir aussi l'API java.util.regex.Pattern pour un aperçu des opérateurs regex.

String[] arrayvar = asdf.split("\\W+");