分割字符串由逻辑值与正则表达式
我有以下字符串:分割字符串由逻辑值与正则表达式
string text = "Hello && my || Name & is | Tom"
现在我想分割字符串成不同的部分,而在字与字之间的逻辑运算符。我已经尝试了下面的内容,但是只有一个字符串和整个文本。
String[] result= Regex.Split(text, @"\&&\||\&\|");
怎么了?
预期输出与5个字符串数组:
- 你好
- 我
- 名称
- 是
- 汤姆
没有正则表达式的解决方案,只是拆分:
String[] result = text.Split(new Char[] { '|', '&' }, StringSplitOptions.RemoveEmptyEntries);
它也会在'&&'而不是仅仅分离'&' – 2015-02-10 09:34:27
@Amit Joki:它会在*&分割*两次*然后*删除*空的部分。 – 2015-02-10 09:35:38
好的..我明白了。这就是为什么删除条目选项在那里我想。 – 2015-02-10 09:37:02
更改您的代码,
String[] result= Regex.Split(text, @"\s*[|&]+\s*");
这会根据一个或多个|
或&
符号分割输入。 \s*
匹配零个或多个空格,并且[|&]+
匹配一个或多个|
或&
符号。
谢谢你的作品。最后一个问题。如果我也想根据'''分割文本,我该怎么做? – Maddy 2015-02-10 09:38:50
只需在字符类中加'''。 '@“\ s * [|&”“] + \ s *”' – 2015-02-10 09:39:18
为什么不使用's.Split(新[] { '|', '&'},StringSplitOptions.RemoveEmptyEntries)'? – 2015-02-10 09:34:20
我认为正则表达式更高效? – Maddy 2015-02-10 09:45:00
@Maddy它不是。 – 2015-02-10 09:51:36