需要从c#中的分隔符中提取字符串

时间:2015-01-21 16:13:06

标签: c# asp.net

我有一个字符串,如RemoteAuthorizationTestScope |开始:En Attente验证|:001 |:01195 | 21/01/2015

我可以从|中提取字符串使用此代码的符号

var userInfo="RemoteAuthorizationTestScope|Start:En Attente Validation|:001|:01195|21/01/2015"
var entries=userInfo.Split('|');

然而,还有一些文字" Start:En Attente Validation"在需要分离的字符串中,如何实现这一点,以便我可以以这种方式分隔字符串。

RemoteAuthorizationTestScope
Start
En Attente Validation
001 
01195
21/01/2015

2 个答案:

答案 0 :(得分:15)

您可以指定要拆分的多个字符,也可以删除空条目。使用String.Split overload之类的:

var entries = userInfo.Split(new []{'|', ':'}, StringSplitOptions.RemoveEmptyEntries);

那会给你

RemoteAuthorizationTestScope
Start
En Attente Validation
001 
01195
21/01/2015

答案 1 :(得分:0)

包括您的其他请求:

  

"开始:En Attente验证"如何在列字符之后只获得字符串':'?

您可以使用正则表达式\|(?:[^:]*:)?

一步完成此操作
var userInfo = 
  "RemoteAuthorizationTestScope|Start:En Attente Validation|:001|:01195|21/01/2015";

var entries = System.Text.RegularExpressions.Regex.Split(userInfo, "\\|(?:[^:]*:)?");

结果:

String[]
[
   "RemoteAuthorizationTestScope",
   "En Attente Validation",
   "001",
   "01195",
   "21/01/2015"
]

工作示例:https://dotnetfiddle.net/D5ggvH