分割字符串由逻辑值与正则表达式

问题描述:

我有以下字符串:分割字符串由逻辑值与正则表达式

string text = "Hello && my || Name & is | Tom" 

现在我想分割字符串成不同的部分,而在字与字之间的逻辑运算符。我已经尝试了下面的内容,但是只有一个字符串和整个文本。

String[] result= Regex.Split(text, @"\&&\||\&\|"); 

怎么了?

预期输出与5个字符串数组:

  • 你好
  • 名称
  • 汤姆
+1

为什么不使用's.Split(新[] { '|', '&'},StringSplitOptions.RemoveEmptyEntries)'? – 2015-02-10 09:34:20

+0

我认为正则表达式更高效? – Maddy 2015-02-10 09:45:00

+1

@Maddy它不是。 – 2015-02-10 09:51:36

没有正则表达式的解决方案,只是拆分:

String[] result = text.Split(new Char[] { '|', '&' }, StringSplitOptions.RemoveEmptyEntries); 
+0

它也会在'&&'而不是仅仅分离'&' – 2015-02-10 09:34:27

+0

@Amit Joki:它会在*&分割*两次*然后*删除*空的部分。 – 2015-02-10 09:35:38

+0

好的..我明白了。这就是为什么删除条目选项在那里我想。 – 2015-02-10 09:37:02

更改您的代码,

String[] result= Regex.Split(text, @"\s*[|&]+\s*"); 

这会根据一个或多个|&符号分割输入。 \s*匹配零个或多个空格,并且[|&]+匹配一个或多个|&符号。

+0

谢谢你的作品。最后一个问题。如果我也想根据'''分割文本,我该怎么做? – Maddy 2015-02-10 09:38:50

+0

只需在字符类中加'''。 '@“\ s * [|&”“] + \ s *”' – 2015-02-10 09:39:18