2013-07-08 4 views
0

Je veux trouver le début et la fin du motif sur mon texte.motif dans regex java

J'utilise le code suivant:

Pattern _pat=Pattern.compile("20. Eslaminejad MB, Nikmahzar A, Piriea A. The structure of " 
+"Human Mesenchymal Stem Cells differentiated into cartilage in micro mass culture system. Yakhteh 2006, 8(3): " 
+"162-171."); 

Matcher _match=_pat.matcher("19. Eslaminejad MB, Eftekhari-Yazdi P. Mesenchymal stem " 
+"cells: In vitro differentiation among bone and cartilage cell " 
+"lineages. Yakhteh. 2007; 9(3): 158-169." 
+"20. Eslaminejad MB, Nikmahzar A, Piriea A. The structure of " 
+"Human Mesenchymal Stem Cells differentiated into cartilage in micro mass culture  system. Yakhteh 2006, 8(3): " 
+"162-171." 
+"21. Pioletti DP, Montjovent MO, Zambelli PY, Applegate L. " 
+"Bone tissue engineering using foetal cell therapy. Swiss " 
+"Med Wkly. 2006 ; 136(35-36): 557-560."); 


    while(_match.find()){ 
     System.out.println(_match.start()); 
     System.out.println(_match.end()); 
    } 

Malheureusement, le modèle ne trouve pas la chaîne dans mon texte.

+3

Ce n'est pas comme ça que vous utilisez regex. Veuillez consulter cette page: http://www.regular-expressions.info/tutorial.html – JREN

+2

Dans votre chaîne de recherche, vous avez plus d'espaces entre les mots que dans le texte recherché. Par exemple entre "structure" et "de" – selig

+2

utiliser regex seulement si vous ne pouvez pas le faire avec des fonctions de chaîne normales .. – Anirudha

Répondre

2

Apparemment, ce que vous avez besoin est pas regex, mais juste

int start = inputString.indexOf(stringToSearch); 

Cela vous donnera la position de départ et la position finale est calculée comme

int end = start+stringToSearch.length(); 

Vous pouvez normaliser les espaces ou effectuer d'autres opérations de normalisation typiques avant d'essayer une correspondance.

+0

+1 à droite, mais le cas peut différer? – Anirudha

0

Votre problème est dans un nombre d'espaces différent. Comparez:

The structure of 

du modèle avec

The structure of 

du texte. En passant, bien que vous utilisiez des motifs, vous n'utilisez aucune des fonctionnalités que les modèles fournissent, donc dans ce cas, vous pouvez utiliser la méthode simple String.contains().