2010-10-11 5 views
0

J'ai besoin d'analyser un fichier (construit à partir d'une chaîne) à la recherche d'occurrences d'un texte unique ou multiligne. Cette solution fonctionnera-t-elle toujours? Si non - comment dois-je le changer?Java regex correspondant

private int parseString(String s){ 
    Pattern p = Pattern.compile(searchableText); 
    Matcher m = p.matcher(s); 
    int count = 0; 
    while(m.find()) { 
     count++; 
    } 

    return count; 
} 

Répondre

1
  • Tenir compte Pattern.quote si le texte peut contenir métacaractères regex.
  • Tenir compte java.util.Scanner et findWithinHorizon
0

Pour les chaînes multilignes dont vous avez besoin pour régler les codes de nouvelle ligne à ce qui est le fichier, ou (probablement mieux) utiliser une expression régulière pour être en mesure d'accepter toutes les différentes combinaisons de \ n et \ r.

+0

Avez-vous déjà vu des regex de ce genre déjà réalisées? – owca

0

Tenir compte de la recherche a\s+b\s+c\s+a, b et c sont la séquence de mots (ou caractères si vous le souhaitez) vous recherchez. Il peut être (trop) gourmand, mais j'espère qu'il devrait donner un aperçu. Vous pouvez également effectuer une normalisation du texte en premier.