我需要构造一个正则表达式来分解像这样的字符串 (1 2 3);(a b c);(4 5 6)
即。括号中的每一个东西都是一个blob(或者下一个要拆开的列表)
有什么想法吗?
这是我在此找到的链接。到目前为止,我还没能在.net下工作。如果你能做翻译,那将不胜感激。
答案 0 :(得分: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"
答案 1 :(得分:1)
根据我上面的评论:
只是为了挑战,这里是正则表达式:
(?<=(^|;)\()(?<list>[^();]+)(?=\)(;|$))
它将列表的开头定义为字符串的开头或分号后跟一个打开的paren,并且如果它遇到一个紧密的paren,后面跟着一个分号结尾的字符串,则只考虑每个列表。 “list”是包含(您猜对了)每个列表的命名组。