正则表达式C#:在两个分隔符之间分割

时间:2015-07-07 10:38:53

标签: c# regex

鉴于我在下面有一个示例字符串:

"parentstring1[childstring1.childstring2.childstring3].parentstring2[childstring4.childstring5]"

如何分割上面的字符串以生成一个数组,其中的值来自'.'字符,'['和']'作为分隔符

array[0] = "parentstring1[childstring1.childstring2.childstring3]"
array[1] = "parentstring2[childstring4.childstring5]"

3 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式进行拆分:

\.(?![^\[]*\])

RegEx Demo

仅当DOT没有跟随0个或更多non-[个字符和]时才会拆分,因此请确保在[...]之外的DOT上拆分。

答案 1 :(得分:1)

string text = "parentstring1[childstring1.childstring2.childstring3].parentstring2[childstring4.childstring5]";

string[] arr = Regex.Split(text, "(?<=\\]).");

foreach (var item in arr)
{
     Console.WriteLine(item);
}

答案 2 :(得分:-1)

您可以像这样使用正则表达式:

[^\[\.]+\[[^\]]*\]

这意味着:除了之外的任何事情。和[,后跟[]符号内的任何内容。

MatchCollection matches = Regex.Matches(source, "[^\[\.]+\[[^\]]*\]")

demo