C# 如何按特定模式拆分字符串?

C# 如何按特定模式拆分字符串?,c#,C#,我有一根绳子 String value ="[xasx1xx]Data1[/xasx1xx][xx22x]Data2[/xx22x][1x22aaaaax]Data3[/1x22aaaaax]"; 我想在关键字“[xxxxx]”和“[xxxxx]”之间拆分字符串,[xxxxx]是随机创建的。这样我就有了这样的输出 数据1 数据2 数据3 任何帮助都将不胜感激。您可以根据自己的期望使用正则表达式获取匹配数据。要从上述数据中获取数据,您可以按以下方式使用正向前瞻和正向前瞻: (?<=\]

我有一根绳子

String value ="[xasx1xx]Data1[/xasx1xx][xx22x]Data2[/xx22x][1x22aaaaax]Data3[/1x22aaaaax]";
我想在关键字
“[xxxxx]”
“[xxxxx]”
之间拆分字符串,
[xxxxx]
是随机创建的。这样我就有了这样的输出

  • 数据1
  • 数据2
  • 数据3
任何帮助都将不胜感激。

您可以根据自己的期望使用正则表达式获取匹配数据。要从上述数据中获取数据,您可以按以下方式使用
正向前瞻
正向前瞻

(?<=\]).*?(?=\[)

将所有的“[”转换为“”,您现在就有了XML格式。然后使用.NET中的标准XML帮助程序。@PhilWright如果我的数据包含任何“[”或“]”?您能给我一个包含上述类似数据的完整字符串吗?下面是一个完整的示例数据:
[peterChan123]太好了!:)[/peterChan123][May\u-Hey]不要这样做;-][/May\u-Hey][admin_Testing]!@$%^&*(?[;”,../[/admin_Testing]
您对此的预期输出是什么?该测试的预期输出返回两个数组。一个是
[“peterChan123”,“May_Hey”,“admin_Testing”]
,另一个是
[“太好了!”,“不要这样做;-”,“$%^&*”,“:”,“(?[;”,/”)
第二个是最难做的。第一个我可以很容易地用“[/”分割字符串,然后用“]”来查找您可以使用的(?)?
string input = "[xasx1xx]Data1[/xasx1xx][xx22x]Data2[/xx22x][1x22aaaaax]Data3[/1x22aaaaax]";
MatchCollection matchCollection = Regex.Matches(input, @"(?<=\]).*?(?=\[)");
var list = matchCollection.Cast<Match>().Where(x => !string.IsNullOrWhiteSpace(x.Value))
               .Select(x=>x.Value); // list contains matching data without empty entry