J'essaie de supprimer des mots dans une chaîne à l'aide de Regex en utilisant le programme ci-dessous. Son élimination correctement mais son compte tenant de la casse sensible à la casse. Comment faire en sorte que le cas est insensible. J'ai gardé (? 1) code> dans remplaxl code> méthode, mais cela n'a pas fonctionné. what Is latest news today Europe? there thing special or everything common.
3 Réponses :
Changement est code> à [ii] [SS] code>
Cela fonctionne, mais un long processus où nous devons mettre tous les personnages. Y a-t-il une meilleure façon
Je ne pense pas que vous puissiez spécifier de l'affaire insensible à la remplacement rapide. Essayez plutôt un motif. I.E:
package com.test.java;
public class RemoveWords {
public static void main(String args[]) {
// assaign some words to string
String sample ="what Is the latest news today in Europe? is there any thing special or everything is common.";
String regex = "( is | the |in | any )"
System.out.print
(
Pattern.compile(regex, Pattern.CASE_INSENSITIVE).matcher(sample).replaceAll("")
);
}
}
Désolé pour le Downvote, mais comme @CodAdaddicts Réponse des spectacles, vous peut i> utiliser ces indicateurs dans string.replaceall () code>.
@ Jochim: Pas de soucis. J'ai répondu @codaddicts de réponse depuis que je dois savoir comment utiliser des indicateurs dans String.ReplaceAll
Vous devez placer le J'ai remplacé les espaces autour de Les mots-clés à supprimer avec la limite de mots ( Si vous souhaitez supprimer les mots-clés uniquement s'ils sont entourés de espace fort>, alors vous pouvez Utilisez des lunettes de vue positive et de l'apparence comme suit: p> le voir strong> p> p> (? i) code> avant strong> la partie du modèle que vous souhaitez rendre insensible à la casse: \\ b code>). Le problème vient parce qu'il peut y avoir deux mots-clés l'un après l'autre séparé par un seul espace. P>
"Le" existe dans la sortie. Il n'a pas remplacé par "" et il ne supprime pas "est" le voir ideone.com/hmxlr " a>
Correct. Pourquoi cela ne remplace pas "le" avec "". Tout problème avec la regex
@codaddict: Notez que cela laisse plusieurs espaces d'affilée, ce qui n'est peut-être pas idéal mais peut être délicat à éviter.
@codaddict fonctionne mais je ne comprends rien de cette regex. Quoi qu'il en soit, je reviens mon -1
@Jon: Vous avez raison. Mais ajouter un .replaceall ("+", "") code> résoudra ça. Faire tout cela dans une seule regex sera délicate.
@hilal: (? i) (? <=) (est | le | dans | dans | tout) (? =) code>: Ceci correspondra à un est code> ou un Le code> ou un dans code> ou un n'importe quel code> si b> ils ont de l'espace qui les entourent.
@CodAddict: Oui ... Je pensais que c'était suffisamment délicat d'avoir supprimé ma réponse et j'ai décidé de vous le laisser :)
@codaddict, cela fonctionne parfaitement. Pouvez-vous expliquer un peu plus sur (? <=) Et (? =)