En C #, j'essaye de scinder la chaîne suivante
(hello)(world)(hello)(world)
dans un tableau du format suivant
arr[0] = (
arr[1] = hello
arr[2] = )
arr[3] = (
arr[4] = world
arr[5] = )
arr[6] = (
arr[7] = hello
arr[8] = )
arr[9] = (
arr[10] = world
arr[11] = )
J'utilise actuellement l'expression de regex suivante pour effectuer la scission et elle semble être lente
Regex.Split(value1, @"(?<=))|(?=))|(?=()|(?<=()")
Je ne suis pas un expert en regex, mais j’ai le sentiment qu’il pourrait exister une autre expression de regex offrant les mêmes fonctionnalités de manière efficace.
Je me demande s’il existe de meilleurs moyens (expressions rationnelles plus efficaces) pour implémenter la même scission en c #?
Réponses:
1 pour la réponse № 1Vous pouvez essayer de faire correspondre ces jetons à la place:
Regex.Matches(value1, @"[()]|[^()]+")
Ici le motif [()]|[^()]+
correspond à un seul (
ou )
, ou une séquence de caractères sauf (
et )
.