在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#中实现相同的拆分?
答案 0 :(得分:1)
您可以尝试匹配这些令牌:
Regex.Matches(value1, @"[()]|[^()]+")
此处,模式[()]|[^()]+
匹配单个(
或)
,或除(
和)
之外的一系列字符。