0

我需要构造一个正则表达式来分解这样的字符串 (1 2 3);(abc);(4 5 6)

即括号中的每一件事都是一个blob(或接下来要分开的列表)

有什么想法吗?

这是我在此找到的链接。到目前为止,我还无法让它在.net 下工作。如果你能做翻译,那将不胜感激。

http://www.perlmonks.org/?node_id=574517

4

2 回答 2

3

这可以使用以下方法轻松实现string.Split

string[] results = myString.Split("();".ToCharArray(), 
                                  StringSplitOptions.RemoveEmptyEntries);

// results[0] == "1 2 3"
// results[1] == "a b c"
// results[2] == "4 5 6"
于 2012-05-23T13:25:10.357 回答
1

从我上面的评论:

只是为了挑战,这里是正则表达式:

(?<=(^|;)\()(?<list>[^();]+)(?=\)(;|$))

它将列表的开头定义为字符串的开头或分号后跟左括号,并且仅当每个列表遇到紧括号后跟字符串末尾的分号时才考虑结束。“list”是包含(你猜对了)每个列表的命名组。

于 2012-05-23T20:08:12.240 回答