0
votes

Comment extraire des mots de longueur constante forme un paragraphe?

J'essaie d'extraire les mots former un paragraphe / une chaîne. Je l'ai cherché beaucoup d'où mais je n'ai pas trouvé de matériel relatif. Je veux extraire des mots de longueur 4 de

"Je veux avoir beaucoup d'argent quand je suis plus âgé probablement E1x2" em> p>

P> P> P> P> P> P> P> P> P> P> P> P> P> m Essayer d'extraire en utilisant P>

[want, have, alot, when]


8 commentaires

Les mots peuvent contenir des chiffres ou non?


Juste changer {4,} à {4}


Oui, il peut contenir des chiffres aussi


@Radheankit - voir ma question mise à jour


Je pense que vous devez probablement ajouter des look-up et de l'aspect afin de vous assurer qu'il existe un caractère blancheur (ou un début ou une fin) séparant le mot


Javascript.info/regeXP-Lookhead-LookBehind


@Controlaltdel - Cher pouvez-vous taper du code pour obtenir le problème résolu?


Pas un bug, mais ne devrait-il pas être "argent" dans la phrase? Et "beaucoup" est deux mots.


5 Réponses :


0
votes

vous voulez le faire avec regex?

Parce que vous n'avez pas mis le "()" qui indique un groupe, comme vous l'appelez "m.group ()", vous avez besoin de cette syntaxe.

Travailler votre regex ici: Regex101 . Après cela, mettez-le dans votre programme Java.

Vous pouvez aussi bien diviser la chaîne avec de l'espace blanc et filtrer la matrice résultante avec uniquement les éléments avec la longueur souhaitée.


0 commentaires

1
votes

Le moyen plus simple d'obtenir le résultat:

List<String> words=new ArrayList<String>(); 
    String s="I want to have alot of of moneys when I am older probably";
    String str[]=s.split(" ");
    for(int i=0;i<str.length;i++)
    {
        if(str[i].length()==4)
            words.add(str[i]);
    }
    System.out.print(words);


0 commentaires

4
votes

Essayez: xxx

sortie: [veux, avoir, beaucoup, quand]

Explication:

  1. \ b correspond à une limite de mot.

2 commentaires

Merci Bro Votre réponse a également travaillé mais je suis tenu d'accepter le premier arrivé en premier service. Mais vous méritez +1


@IRFANAKRAM HEHE SANS PROBLÈME BRO. Je suis tombé un peu en retard parce que je voulais résoudre votre problème avec regex uniquement depuis que vous utilisiez cela dans votre question. Quoi qu'il en soit, merci pour un uppote. Plus de chance la prochaine fois!!!



0
votes

Vous avez besoin de regarder derrière et de regarder en avant dans votre regex

votre original: xxx

avec regarder devant vous et regarder derrière: xxx < / Pré>

Maintenant que les regards et les parandes ont été ajoutés, il pourrait y avoir un problème avec le début et la fin de la chaîne ne correspondant pas. Ajoutez un espace des deux côtés de la chaîne correspondante et doit fonctionner


0 commentaires

0
votes

Une solution qui utilise le Stream api xxx

Le texte est divisé en mots individuels.
Seuls les mots dont la longueur est 4 passant par le filtre.
Tous les mots de quatre lettres sont collectés dans une liste.


0 commentaires