用'/'分隔,直到'['出现

时间:2017-04-25 09:35:45

标签: c# regex

我想分割以下类型的字符串:

  

父/子/值[4za] AX / BY

并通过以下方式创建String[]

String[] ArrayVar = Regex.Split(stringVar, "?");

在首次出现/之前,每隔[分割字符串。

结果我得到了

Array[0] => "Parent"
Array[1] => "Child"
Array[2] => "Value [4za] AX/BY"

字符串也可以有其他格式,如

  

父/值[4za] AX / BY

     

值[4za] AX / BY

我该怎么做?

2 个答案:

答案 0 :(得分:33)

您可以使用普通的字符串操作来执行此操作。只需在第一个[上拆分字符串,然后相应地拆分它。然后只需将字符串的结尾部分添加到最后一个元素:

string inputstring = "Parent/Child/Value [4za] AX/BY";

int index = inputstring.IndexOf('[');

string[] parts = inputstring.Substring(0, index).Split('/');
parts[parts.Length - 1] += inputstring.Substring(index);

答案 1 :(得分:23)

使用负面的lookbehind((?<!...))。以下正则表示&#34; /前面没有开括号&#34;:

(?<!\[.*)/

Demo

C#demo:https://dotnetfiddle.net/85S3cK