/ / Manière efficace d’utiliser les lookarounds pour regex split - regex, split, regex-lookarounds, string-split

Utilisation efficace des méthodes de recherche pour le regex split - regex, split, regex-lookarounds, split de chaîne

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 № 1

Vous 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 ).