我想根据“或”分隔符之前和“或”之后的逗号分割以下字符串,但不是之后。例如C#正则表达式以逗号分割字符串,只是之前“或”
Almondmilk, Coconutmilk or Soymilk Select Varieties, Half Gallon
成为
- 扁桃浆
- 椰浆
- 豆浆机选择品种,半加仑
我想根据“或”分隔符之前和“或”之后的逗号分割以下字符串,但不是之后。例如C#正则表达式以逗号分割字符串,只是之前“或”
Almondmilk, Coconutmilk or Soymilk Select Varieties, Half Gallon
成为
鉴于您的要求描述:
var output = Regex.Split(input, "(?<!or.*),");
然而,鉴于您的样本输出似乎要分割上“或者”以及:
var output = Regex.Split(input,
"((?<!or.*),)|(or)",
RegexOptions.ExplicitCapture);
@MattBurland我只是更新了你发布的答案 - 请现在检查 – decPL 2014-09-10 13:06:05
是的,第二个正则表达式似乎工作。我有几乎相同的解决方案(但使用向前看,而不是看后面),但缺少'ExplicitCapture'部分。 – 2014-09-10 13:07:19
谢谢@MattBurland,你帮了很多。我没有想到这样做。对不起,这个问题做得很糟糕。 – 2014-09-10 13:26:48
请把你的问题的尝试。 – Jerry 2014-09-10 12:54:45
目前还不清楚。多解释一下.. – 2014-09-10 12:57:05
难道你不能仅仅对“或”进行常规拆分,然后将第一个结果拆分为“,”? – 2014-09-10 12:59:41