Je suis nouveau dans regex. Ce que je veux faire, c’est scinder la chaîne avec certaines conditions, mais je ne sais pas comment le faire.
Voici l'échantillon / condition
String str = sum1=x+(5+a)
Array[0] = sum1
Array[1] = =
Array[2] = x
Array[3] = +
Array[4] = (
Array[5] = 5
Array[6] = +
Array[7] = a
Array[8] = )
Je veux que la chaîne soit divisée par +
,-
,*
,,
(
,)
,=
Est-ce possible?
Réponses:
1 pour la réponse № 1Si vous vraiment besoin d'utiliser regex, vous devriez probablement utiliser regarder autour mécanisme puisque vous ne voulez pas vous séparer à ces personnages, mais avant ou après leur.
String str = "sum1=x+(5+a)";
String[] array=str.replaceAll("\s+","")//remove all spaces
.split("(?<=[+\-*\\()=/])|(?=[+\-*\\()=/])");
for (int i=0; i<array.length; i++)
System.out.println("Array["+i+"] = "+array[i]);
sortie:
Array[0] = sum1
Array[1] = =
Array[2] = x
Array[3] = +
Array[4] = (
Array[5] = 5
Array[6] = +
Array[7] = a
Array[8] = )
0 pour la réponse № 2
Oui, il est possible que la regex ressemble à ceci yourstring.split("[+-*\()=]")