2014-09-10 56 views
-7

我想根据“或”分隔符之前和“或”之后的逗号分割以下字符串,但不是之后。例如C#正则表达式以逗号分割字符串,只是之前“或”

Almondmilk, Coconutmilk or Soymilk Select Varieties, Half Gallon 

成为

  1. 扁桃浆
  2. 椰浆
  3. 豆浆机选择品种,半加仑
+5

请把你的问题的尝试。 – Jerry 2014-09-10 12:54:45

+0

目前还不清楚。多解释一下.. – 2014-09-10 12:57:05

+2

难道你不能仅仅对“或”进行常规拆分,然后将第一个结果拆分为“,”? – 2014-09-10 12:59:41

回答

2

鉴于您的要求描述:

var output = Regex.Split(input, "(?<!or.*),"); 

然而,鉴于您的样本输出似乎要分割上“或者”以及:

var output = Regex.Split(input, 
         "((?<!or.*),)|(or)", 
         RegexOptions.ExplicitCapture); 
+1

@MattBurland我只是更新了你发布的答案 - 请现在检查 – decPL 2014-09-10 13:06:05

+2

是的,第二个正则表达式似乎工作。我有几乎相同的解决方案(但使用向前看,而不是看后面),但缺少'ExplicitCapture'部分。 – 2014-09-10 13:07:19

+0

谢谢@MattBurland,你帮了很多。我没有想到这样做。对不起,这个问题做得很糟糕。 – 2014-09-10 13:26:48

相关问题