使用正则表达式进行正则表达式拆分的有效方法

时间:2013-05-22 04:24:21

标签: regex split regex-lookarounds string-split

在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 个答案:

答案 0 :(得分:1)

您可以尝试匹配这些令牌:

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

此处,模式[()]|[^()]+匹配单个(),或除()之外的一系列字符。

相关问题