Il y a une chaîne: Je veux utiliser des expressions régulières pour correspondre à des substrings non répétitifs comme: p> Comment peut-on Je fais ça? P> p>
3 Réponses :
Vous pouvez itérair sur la longueur de la chaîne, puis utiliser une expression régulière pour affirmer que la sous-chaîne ne répète pas, par exemple
Vous pouvez l'utiliser aussi longtemps que vous pouvez tolérer des correspondances vides:
import java.util.Arrays;
public class HelloWorld
{
public static void main(String[] args)
{
String[] items = "1112344866893334".split("(\\d)\\1+");
System.out.print(Arrays.toString(items));
}
}
J'ai modifié ma réponse précédente pour inclure des cas particuliers.
Ceux-ci incluent: p>
Le premier remplacement remplace toutes les occurrences de chiffres répétés avec AA. La seconde supprime répéter A du début de la chaîne. La scission se divise sur un A répété. P> p>
Tout d'abord, vous ne pouvez pas faire cela uniquement avec REGEXP, car vous devriez vérifier y a-t-il déjà avant une nouvelle combinaison. Vous devriez créer un algorithme de vérification et après cela seulement faire des sous-chaînes avec REGEXP
Erdredre C'est possible avec des moteurs de regex moins restrictifs cependant.
@Fankpuffer Ce n'est pas un duplicata comme l'autre question demande la correspondance de cordes entières pendant que cette question demande de faire correspondre les sous-chaînes.