8
votes

Expression régulière enlever tous les mots plus courts que n

Eh bien, je cherche une regexp dans Java qui supprime tous les mots plus courts de 3 caractères. Je pensais que quelque chose comme \ s \ w {1,2} \ s saisirait tous les mots de 1 et 2 lettres (unespace blanche, un à deux caractères de mots et une autre blanchie), mais cela ne fait que t Travaux. Où suis-je tort?


2 commentaires

Tous les mots dans une ficelle plus courte que 3, ou un mot à la fois?


Tous les mots sur un seul passage, je n'en ai tout simplement pas besoin.


4 Réponses :


1
votes

Essayez: \ b \ w {1,2} \ b Bien que vous deviez toujours vous débarrasser des doubles espaces qui apparaîtront.


0 commentaires

3
votes

Si vous ne voulez pas que la touche blancheure correspondante, vous pouvez utiliser

\b\w{1,2}\b\s?


3 commentaires

S'il vous plaît laissez un commentaire lorsque vous descendez. Je composé cela en même temps jeufreak a posté sa réponse; Je ne l'ai pas simplement copié.


Si vous avez légèrement changé cela pour \ b \ w {1,2} \ s? \ B, cela pourrait aborder la question des espaces.


@CaptainawesomePants: Synchronicité - Je venais d'éditer ma réponse. :) Je ne pense pas que vous ayez besoin de la dernière slash b, cependant.



1
votes

Si vous avez une chaîne comme ceci:

hello there this short word


1 commentaires

Cela semble une bonne idée, mais j'utilise actuellement GWT et que les méthodes de regex de la classe de chaîne. Donc, je peux diviser ma chaîne ou remplacer mes regexps, mais je ne suis pas kwnow comment obtenir uniquement les choses que j'ai assorties :(



11
votes

Je dois travailler assez bien, mais il a fallu deux passes.

public static void main(String[] args) {
    String passage = "Well, I'm looking for a regexp in Java that deletes all words shorter than 3 characters.";
    System.out.println(passage);

    passage = passage.replaceAll("\\b[\\w']{1,2}\\b", "");
    passage = passage.replaceAll("\\s{2,}", " ");

    System.out.println(passage);
}


1 commentaires

Fyi - cela ferait "ne peut pas y croire" => "peut le croire"