【问题标题】:C# Regex to split string by commas that are only before "or" [closed]C#正则表达式用逗号分割字符串,仅在“或”之前[关闭]
【发布时间】:2014-09-10 12:53:25
【问题描述】:

我想根据“或”分隔符之前和“或”分隔符之前的逗号分割以下字符串,但不是之后。例如

Almondmilk, Coconutmilk or Soymilk Select Varieties, Half Gallon

变成

  1. 杏仁奶
  2. 椰奶
  3. 精选豆浆品种,半加仑

【问题讨论】:

  • 请在问题中提出您的尝试。
  • 不清楚。多解释一下..
  • 你不能只对“或”进行常规拆分,然后将第一个结果拆分为“,”吗?
  • 你的愿望清单不是问题;你能以关于实际代码的具体问题的形式表达你的问题吗?
  • 对不起,是的,我也想在“或”上拆分。

标签: c# regex


【解决方案1】:

根据您描述的要求:

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

但是,鉴于您的示例输出,您似乎也想在“或”上进行拆分:

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

【讨论】:

  • @MattBurland 我只是在更新您发布的答案 - 请立即查看
  • 是的,第二个正则表达式似乎有效。我有几乎相同的解决方案(但使用向前看而不是向后看)但缺少ExplicitCapture 部分。
  • 谢谢@MattBurland,你帮了很多忙。我没想过那样做。很抱歉这个问题做得不好。
  • 谢谢@decPL 你当然回答了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-03
  • 2019-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-25
相关资源
最近更新 更多