/ / Ефективен начин в използването на примерите за разделяне на регенериране - регенериране, разделяне, регекс-търсене, разделяне на низове

Ефективен начин за използване на примерите за регекс разделяне - регенериране, разделяне, регек-търсене, разделяне на низ

В C #, аз се опитвам да разделите следния низ

(hello)(world)(hello)(world)

в масив от следния формат

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] = )

Понастоящем използвам следния израз на регекс за изпълнение на разделянето и изглежда, че е бавен

Regex.Split(value1, @"(?<=))|(?=))|(?=()|(?<=()")

Аз не съм експерт с регекс, но имам чувството, че може да има и друг регекс израз, който да осигурява същата функционалност по ефективен начин.

Чудите се дали има по-добри начини (по-ефективни регекс изрази) за изпълнение на същото разделяне в c #?

Отговори:

1 за отговор № 1

Вместо това бихте могли да опитате да съберете тези символи:

Regex.Matches(value1, @"[()]|[^()]+")

Тук моделът [()]|[^()]+ съвпада с една ( или ), или поредица от знаци освен ( и ).