2010-12-11 5 views
1

Je les chaînes suivantes:correspondent à une chaîne de caractères entre les balises:

<PAUL SAINT-KARL 1997-05-07> 
<BOB DEAN 2001-05-07> 
<GUY JEDDY 2007-05-07> 

Je veux un regex java qui correspondrait à ce type de modèle « nom et la date », puis extraire le nom et la date séparément.

-je capable de les faire correspondre séparément avec le regex java suivant:

1) (\d{4}-\d{2}-\d{2})> 

    2) <([ A-Z&#;0-9-]*+) 

Ce que je suis à la recherche est une expression rationnelle qui permettrait d'identifier le modèle en texte intégral tel que prévu, puis extraire les sous-sections, telles que le nom réel et la date.

Je cherche à utiliser Matcher.group() pour récupérer la correspondance complète de la chaîne cible.

Merci

+0

Est-ce supposé fonctionner uniquement sur RADIX-50 ou sur Unicode (le jeu de caractères natif de Java)? – tchrist

Répondre

2

Essayez ceci:

"<([ A-Z&#;0-9-]*?) (\\d{4}-\\d{2}-\\d{2})>" 

J'ai changé le *+ à *? pour faire le * match de paresseusement.

+0

Oui, je l'ai fait, et d'une certaine manière, il ne semble pas trouver le motif. Cependant, les faire séparément fonctionne: Regex: (\ d {4} - \ d {2} - \ d {2}) > et en capturant le texte via un espace réservé: \t Regex : < ([A-Z & #; 0-9 -] * +) et la capture du texte via un espace réservé: Brian

+0

Salut Mark, cela a fonctionné. Merci beaucoup. – Brian

Questions connexes