示例文本(我已突出显示所需/
的 's):
对[@Key=2]/
项目/
项目[Person/Name='Martin']/
日期
我正在尝试获取不在方括号内的每个正斜杠,任何使用正则表达式的人都可以帮助我吗?用途是:
string[] result = Regex.Split(text, pattern);
我已经用这段代码完成了,但想知道是否有一个更简单的正则表达式可以做同样的事情:
private string[] Split()
{
List<string> list = new List<string>();
int pos = 0, i = 0;
bool within = false;
Func<string> add = () => Format.Substring(pos, i - pos);
//string a;
for (; i < Format.Length; i++)
{
//a = add();
char c = Format[i];
switch (c)
{
case '/':
if (!within)
{
list.Add(add());
pos = i + 1;
}
break;
case '[':
within = true;
break;
case ']':
within = false;
break;
}
}
list.Add(add());
return list.Where(s => !string.IsNullOrEmpty(s)).ToArray();
}